﻿using System;
using System.Collections.Generic;
using System.Linq;
using CRM.Database.Model;
using DevExpress.Web.Mvc;
using Utilites;
using System.Data;
using System.Text;

namespace CRM.Models
{
    /// <summary>
    /// Класс для работы с коллекциями объектов из базы данных
    /// </summary>
    public static class DB
    {
        ///// <summary>
        ///// Коллекции сущностей базы данных
        ///// </summary>
        //private static Entities _entities;

        ///// <summary>
        ///// Коллекции сущностей базы данных
        ///// </summary>
        //public static Entities Entities
        //{
        //    get
        //    {
        //        if (_entities == null)
        //        {
        //            _entities = new Entities();
        //        }
        //        return _entities;
        //    }
        //    set { _entities = value; }
        //}

        ///// <summary>
        ///// Сохранение в базу
        ///// </summary>
        //public static void Save()
        //{
        //    try
        //    {
        //        Entities.SaveChanges();
        //    }
        //    catch
        //    {
        //        Entities = new Entities();
        //    }
        //}

        ///// <summary>
        ///// Текущий язык в системе
        ///// </summary>
        //public static CurrentLanguage CurrentLanguage
        //{
        //    get
        //    {
        //        string culture = Thread.CurrentThread.CurrentCulture.ToString();
        //         if (culture.Contains("ru"))
        //         {
        //             return CurrentLanguage.Russian;
        //         }
        //         else
        //         {
        //             return CurrentLanguage.English;
        //         }
        //    }
        //}

        //#region Addresses

        ////public static IEnumerable<Addresses>  Addresseses
        ////{
        ////    get { return Entities.Addresses.ToList(); }
        ////}

        /////// <summary>
        /////// Возвращает список полностью заполненных контактов 
        /////// </summary>
        /////// <param name="idLegalEntity"></param>
        /////// <returns></returns>
        ////public static List<Addresses> GetAddressesByLegalEntityId(int idLegalEntity)
        ////{
        ////    var result = new List<Addresses>();
        ////    var entity = GetLegalEntityById(idLegalEntity);
        ////    if (entity != null)
        ////    {
        ////        foreach (var item in entity.Addresses)
        ////        {
        ////            result.Add(item);
        ////        }
        ////    }
        ////    return result;
        ////}
        
        /////// <summary>
        /////// Получение адреса по ИД
        /////// </summary>
        /////// <param name="idAddress">ID</param>
        /////// <returns>Адрес</returns>
        ////public static Addresses GetAddressById(int idAddress)
        ////{
        ////  try
        ////  {
        ////      Addresseses.Count();
        ////      return Addresseses.FirstOrDefault(c => c.IdAddress == idAddress);
        ////  }
        ////    catch
        ////    {
        ////       // return Addresseses.FirstOrDefault(c => c.IdAddress == idAddress);
        ////    }
         
        ////      return new Addresses();
         
          
        ////}

        //#endregion

        //#region Contracts   


        ///// <summary>
        ///// Все контракты
        ///// </summary>
        //public static IEnumerable<Contracts>  AllContracts
        //{
        //    get { return Entities.Contracts.ToList(); }
        //}

        //public static IEnumerable<Contracts> MainContracts
        //{
        //    get { return AllContracts.Where(s => s.IdParentContract == null); }
        //}

        //public static IEnumerable<Contracts> AllSubContracts
        //{
        //    get { return AllContracts.Where(s => s.IdParentContract != null); }
        //}

        //public static IEnumerable<Contracts> GetSubcontractsByContractId(int contractId)
        //{
        //    return GetContractById(contractId).ChildContracts;
        //}
       
        ///// <summary>
        ///// Активные контракты
        ///// </summary>
        //public static IEnumerable<Contracts>  AllContractsActive
        //{
        //    get { return AllContracts.Where(p => p.IsActive == true) ; }
        //}


        ///// <summary>
        ///// Получение контракта по ид
        ///// </summary>
        ///// <param name="id">Ид</param>
        ///// <returns>Найденный контракт</returns>
        //public static Contracts GetContractById(int id)
        //{
        //    return AllContracts.FirstOrDefault(p => p.IdContract == id);
        //}


        ///// <summary>
        ///// Получение контракта по номеру
        ///// </summary>
        ///// <param name="number">Номер</param>
        ///// <returns>Контракт</returns>
        //public static Contracts GetContractByNumber(string number)
        //{
        //    return AllContracts.FirstOrDefault(p => p.ContractNumber == number);
        //}

        //#endregion

        //#region Settlements

        ////public static List<Settlements> Settlements
        ////{
        ////    get { return Entities.Settlements.ToList(); }
        ////}

        //#endregion

        #region Dealers

        ///// <summary>
        ///// Дилеры
        ///// </summary>
        //public static IEnumerable<Customers> Dealers
        //{
        //    get
        //    {
        //        if(_dealers==null)
        //        {
        //            List<Customers> result = new List<Customers>();

        //            //foreach (var customer in Customers)
        //            //{
        //            //    if (customer.IsDealer)
        //            //    {
        //            //        result.Add(customer);
        //            //    }
        //            //}

        //            var cust = GetCustomerBySequentalNumber(450);
        //            if(cust!=null)
        //                if(!result.Contains(cust))
        //                    result.Add(cust);

        //           // result.Add(GetCustomerBySequentalNumber(861));
        //            cust = GetCustomerBySequentalNumber(861);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //          // result.Add(GetCustomerBySequentalNumber(221));
        //            cust = GetCustomerBySequentalNumber(221);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //          //  result.Add(GetCustomerBySequentalNumber(432));
        //            cust = GetCustomerBySequentalNumber(432);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //         //   result.Add(GetCustomerBySequentalNumber(435));
        //            cust = GetCustomerBySequentalNumber(435);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //            //result.Add(GetCustomerBySequentalNumber(456));
        //            cust = GetCustomerBySequentalNumber(456);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //        //    result.Add(GetCustomerBySequentalNumber(1593));
        //            cust = GetCustomerBySequentalNumber(1593);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //           // result.Add(GetCustomerBySequentalNumber(422));
        //            cust = GetCustomerBySequentalNumber(422);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //         //   result.Add(GetCustomerBySequentalNumber(1529));
        //            cust = GetCustomerBySequentalNumber(1529);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //           // result.Add(GetCustomerBySequentalNumber(5179));
        //            cust = GetCustomerBySequentalNumber(5179);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(1279));
        //            cust = GetCustomerBySequentalNumber(1279);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(1121));
        //            cust = GetCustomerBySequentalNumber(1121);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //           // result.Add(GetCustomerBySequentalNumber(426));
        //            cust = GetCustomerBySequentalNumber(426);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //         //   result.Add(GetCustomerBySequentalNumber(4311));
        //            cust = GetCustomerBySequentalNumber(4311);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(4249));
        //            cust = GetCustomerBySequentalNumber(4249);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //        //    result.Add(GetCustomerBySequentalNumber(4257));
        //            cust = GetCustomerBySequentalNumber(4257);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //          //  result.Add(GetCustomerBySequentalNumber(4832));
        //            cust = GetCustomerBySequentalNumber(4832);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //         //   result.Add(GetCustomerBySequentalNumber(156));
        //            cust = GetCustomerBySequentalNumber(156);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //         //   result.Add(GetCustomerBySequentalNumber(900));
        //            cust = GetCustomerBySequentalNumber(900);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //           // result.Add(GetCustomerBySequentalNumber(4249));
        //            cust = GetCustomerBySequentalNumber(4249);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //         //   result.Add(GetCustomerBySequentalNumber(861));
        //            cust = GetCustomerBySequentalNumber(861);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //          //  result.Add(GetCustomerBySequentalNumber(7459));
        //            cust = GetCustomerBySequentalNumber(7459);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //        //    result.Add(GetCustomerBySequentalNumber(6064));
        //            cust = GetCustomerBySequentalNumber(6064);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //         //   result.Add(GetCustomerBySequentalNumber(458));
        //            cust = GetCustomerBySequentalNumber(458);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //           // result.Add(GetCustomerBySequentalNumber(5118));
        //            cust = GetCustomerBySequentalNumber(5118);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //        //    result.Add(GetCustomerBySequentalNumber(7502));
        //            cust = GetCustomerBySequentalNumber(7502);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //         //   result.Add(GetCustomerBySequentalNumber(1401));
        //            cust = GetCustomerBySequentalNumber(1401);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //         //   result.Add(GetCustomerBySequentalNumber(7699));
        //            cust = GetCustomerBySequentalNumber(7699);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //        //    result.Add(GetCustomerBySequentalNumber(4257));
        //            cust = GetCustomerBySequentalNumber(4257);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //         //   result.Add(GetCustomerBySequentalNumber(7699));
        //            cust = GetCustomerBySequentalNumber(7699);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(4257));
        //            cust = GetCustomerBySequentalNumber(4257);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(7557));
        //            cust = GetCustomerBySequentalNumber(7557);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //           // result.Add(GetCustomerBySequentalNumber(7828));
        //            cust = GetCustomerBySequentalNumber(7828);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(8450));
        //            cust = GetCustomerBySequentalNumber(8450);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //       //     result.Add(GetCustomerBySequentalNumber(8615));
        //            cust = GetCustomerBySequentalNumber(8615);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //         //   result.Add(GetCustomerBySequentalNumber(4257));
        //            cust = GetCustomerBySequentalNumber(4257);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //            cust = GetCustomerBySequentalNumber(7675);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);


        //          //  result.Add(GetCustomerBySequentalNumber(7828));
        //            cust = GetCustomerBySequentalNumber(7828);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //            cust = GetCustomerBySequentalNumber(4307);
        //            if (cust != null)
        //                if (!result.Contains(cust))
        //                    result.Add(cust);

        //            _dealers= result;
        //        }
        //        return _dealers;
        //        // return Customers.Where(p => p.IsDealer == true);
        //    }
        //}

        //private static IEnumerable<Customers> _dealers;

        ///// <summary>
        ///// Поиск дилера по названию юридического лица
        ///// </summary>
        ///// <param name="dealerName">Название юридического лица дилера</param>
        ///// <param name="exactName">Искать полное совпадение?</param>
        ///// <returns>Найденный дилер</returns>
        //public static Customers GetDealerByName(string dealerName, bool exactName=true)
        //{
        //    Models.Customers result = null;


        //    if(exactName)
        //    {
        //        foreach (var dealer in Dealers)
        //        {
        //            if (dealer.LegalEntities.Any(legalEntity => legalEntity.Name == dealerName))
        //            {
        //                result = dealer;
        //                break;
        //            }
        //        }
        //    }
        //    else
        //    {
        //        foreach(var dealer in Dealers)
        //        {
        //            foreach(var legalEntity in dealer.LegalEntities)
        //            {
        //                if(legalEntity.Name.Trim().ToUpper()==dealerName.Trim().ToUpper())
        //                {
        //                    result = dealer;
        //                    break;
        //                }
        //            }
        //        }
        //    }

        //    return result;
        //}

       

        #endregion
        
        //#region Geometries

        /////// <summary>
        /////// Список геометрий
        /////// </summary>
        ////public static List<Geometries> Geometries
        ////{
        ////    get { return Entities.Geometries.ToList(); }
        ////}

        /////// <summary>
        /////// Только активные геометрии
        /////// </summary>
        ////public static IEnumerable<Geometries> GeometriesActive
        ////{
        ////    get { return Geometries.Where(p => p.IsActive.Equals(true)); }
        ////}

        /////// <summary>
        /////// Получить геометрию по Id
        /////// </summary>
        /////// <param name="idGeometry">Id геометрии</param>
        /////// <returns>Геометрия</returns>
        ////public static Geometries GetGeometrybyId(int idGeometry)
        ////{
        ////    Geometries _result = null;

        ////    foreach (Geometries geometry in Geometries)
        ////    {
        ////        if (geometry.IdGeometry == idGeometry)
        ////        {
        ////            _result = geometry;
        ////            break;
        ////        }
        ////    }

        ////    return _result;
        ////}

        ///// <summary>
        ///// Обновление геометрии
        ///// </summary>
        ///// <param name="geometry">Геометрия</param>
        ///// <param name="userLogin">Логин пользователя, сделавшего изменение</param>
        //public static void GeometriesUpdate(Geometries geometry, string userLogin)
        //{
        //    if (geometry != null)
        //    {
        //        Geometries geometryUpdate = GetGeometrybyId(geometry.IdGeometry);
        //        if (geometryUpdate != null)
        //        {
        //            geometryUpdate.Geometry = geometry.Geometry;
        //            geometryUpdate.IsActive = geometry.IsActive;
        //            geometryUpdate.IdUser = userLogin;
        //            DB.Save();
        //        }
        //    }
        //}

        ///// <summary>
        ///// Добавление геометрии
        ///// </summary>
        ///// <param name="geometry">Геометрия</param>
        //public static void GeometriesInsert(Geometries geometry)
        //{
        //    Entities.Geometries.Add(geometry);
        //   // Save();
        //}

        ///// <summary>
        ///// Удаление геометрии
        ///// </summary>
        ///// <param name="geometry">Геометрия</param>
        //public static void GeometriesDelete(Geometries geometry)
        //{
        //    if (geometry != null)
        //    {
        //        Geometries geometryDel = GetGeometrybyId(geometry.IdGeometry);
        //        if (geometryDel != null)
        //        {
        //            Entities.Geometries.Remove(geometryDel);
        //            DB.Save();
        //        }
        //    }
        //}

        //#endregion

        //#region Areas

        ///// <summary>
        ///// Список районов
        ///// </summary>
        //public static List<Areas> Areas
        //{
        //    get { return Entities.Areas.ToList(); }
        //}

        ///// <summary>
        ///// Только активные районы
        ///// </summary>
        //public static IEnumerable<Areas> AreasActive
        //{
        //    get { return Areas.Where(p => p.IsActive.Equals(true)); }
        //}

        ///// <summary>
        ///// Получение локализованного списка значений
        ///// </summary>
        ///// <param name="culture"></param>
        ///// <returns></returns>
        //public static List<LocalizedListItem> GetLocalizedAreasNames()
        //{
        //    List<LocalizedListItem> result = null;
        //    foreach (Areas area in Areas)
        //    {
        //        if (result == null) result = new List<LocalizedListItem>();
        //        var listItem = new LocalizedListItem();
        //        listItem.Id = area.IdArea;
        //        listItem.ParentCollection = Areas;
               

        //        switch(CurrentLanguage)
        //        {
        //            case CurrentLanguage.Russian:
        //                listItem.LocaLizedString = area.NameRu;
        //                break;
        //            case CurrentLanguage.English:
        //                listItem.LocaLizedString = area.NameEn;
        //                break;
        //            default:
        //                throw new ArgumentOutOfRangeException();
        //        }

        //        result.Add(listItem);
        //    }
        //    return result;
        //}

        ///// <summary>
        ///// Получить район по Id
        ///// </summary>
        ///// <param name="idArea">Id района</param>
        ///// <returns>Район</returns>
        //public static Areas GetAreabyId(int idArea)
        //{
        //    Areas _result = null;
        //    foreach (Areas area in Areas)
        //    {
        //        if (area.IdArea == idArea)
        //        {
        //            _result = area;
        //            break;
        //        }
        //    }
        //    return _result;
        //}

        ///// <summary>
        ///// Обновление района
        ///// </summary>
        ///// <param name="area">район</param>
        //public static void AreasUpdate(Areas area)
        //{
        //    if (area != null)
        //    {
        //        Areas areaUpdate = GetAreabyId(area.IdArea);
        //        if (areaUpdate != null)
        //        {
        //            areaUpdate.IsActive = area.IsActive;
        //            areaUpdate.IdRegion = area.IdRegion;
        //            areaUpdate.NameEn = area.NameEn;
        //            areaUpdate.NameRu = area.NameRu;

        //            DB.Save();
        //        }
        //    }
        //}

        ///// <summary>
        ///// Добавление района
        ///// </summary>
        ///// <param name="area">Район</param>
        //public static void AreasInsert(Areas area)
        //{
        //    Entities.Areas.Add(area);
            
        //    DB.Save();
        //}

        ///// <summary>
        ///// Удаление района
        ///// </summary>
        ///// <param name="area">Район</param>
        //public static void AreasDelete(Areas area)
        //{
        //    if (area != null)
        //    {
        //        Areas areDel = GetAreabyId(area.IdArea);
        //        if (areDel != null)
        //        {
        //            Entities.Areas.Remove(areDel);
        //            DB.Save();
        //        }
        //    }
        //}

        //#endregion

        //#region Colors - moved but not commented

        //    /// <summary>
        //    /// Список цветов
        //    /// </summary>
        //    public static List<Colors> Colors
        //    {
        //        get { return Entities.Colors.ToList(); }
        //    }

        //    /// <summary>
        //    /// Только активные цвета
        //    /// </summary>
        //    public static IEnumerable<Colors> ColorsActive
        //    {
        //        get { return Colors.Where(p => p.IsActive.Equals(true)); }
        //    }

        //    ///// <summary>
        //    ///// Получение локализованного списка значений
        //    ///// </summary>
        //    ///// <param name="culture"></param>
        //    ///// <returns></returns>
        //    //public static List<LocalizedListItem> GetLocalizedColorsNames()
        //    //{
        //    //    List<LocalizedListItem> result = null;
        //    //    foreach (Colors item in Colors)
        //    //    {
        //    //        if (result == null) result = new List<LocalizedListItem>();
        //    //        var listItem = new LocalizedListItem();
        //    //        listItem.Id = item.IdColor;
        //    //        listItem.ParentCollection = Colors;
               
        //    //        switch(CurrentLanguage)
        //    //        {
        //    //            case CurrentLanguage.Russian:
        //    //                listItem.LocaLizedString = item.NameRu;
        //    //                break;
        //    //            case CurrentLanguage.English:
        //    //                listItem.LocaLizedString = item.NameEn;
        //    //                break;
        //    //            default:
        //    //                throw new ArgumentOutOfRangeException();
        //    //        }

        //    //        result.Add(listItem);
        //    //    }
        //    //    return result;
        //    //}

        //    /// <summary>
        //    /// Получить цвет по Id
        //    /// </summary>
        //    /// <param name="idColor">Id цвета</param>
        //    /// <returns>Цвет</returns>
        //    public static Colors GetColorbyId(int idColor)
        //    {
        //        Colors _result = null;
        //        foreach (Colors color in Colors)
        //        {
        //            if (color.IdColor == idColor)
        //            {
        //                _result = color;
        //                break;
        //            }
        //        }
        //        return _result;
        //    }

        //    /// <summary>
        //    /// Обновление цвета
        //    /// </summary>
        //    /// <param name="color">цвет</param>
        //    public static void ColorsUpdate(Colors color)
        //    {
        //        if (color != null)
        //        {
        //            Colors colorUpdate = GetColorbyId(color.IdColor);
        //            if (colorUpdate != null)
        //            {
        //                colorUpdate.IsActive = color.IsActive;
        //                colorUpdate.NameEn = color.NameEn;
        //                colorUpdate.NameRu = color.NameRu;
        //                colorUpdate.NameSAP = color.NameSAP;

        //                DB.Save();
        //            }
        //        }
        //    }

        //    /// <summary>
        //    /// Добавление цвета
        //    /// </summary>
        //    /// <param name="color">Цвет</param>
        //    public static void ColorsInsert(Colors color)
        //    {
        //        Entities.Colors.Add(color);
        //        DB.Save();
        //    }

        //    /// <summary>
        //    /// Удаление цвета
        //    /// </summary>
        //    /// <param name="color">цвет</param>
        //    public static void ColorsDelete(Colors color)
        //    {
        //        if (color != null)
        //        {
        //            Colors colorDel = GetColorbyId(color.IdColor);
        //            if (colorDel != null)
        //            {
        //                Entities.Colors.Remove(colorDel);
        //                DB.Save();
        //            }
        //        }
        //    }

        //#endregion

      //  #region Countries

      //  /// <summary>
      //  /// Список стран
      //  /// </summary>
      //  public static List<Countries> Countries
      //  {
      //      get { return Entities.Countries.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные страны
      //  /// </summary>
      //  public static IEnumerable<Countries> CountriesActive
      //  {
      //      get
      //      {
      //          return
      //              Countries.Where(p => p.IsActive).Where(q => q.Organisations != null && q.Organisations.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedCountriesNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (Countries item in Countries)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdCountry;
      //          listItem.ParentCollection = Countries;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.CountryRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.CountryEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedCountriesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Countries item in Countries)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdCountry;
      //  //        listItem.ParentCollection = Countries;
      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.CountryRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.CountryEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }
                
      //  //    if(!result.Contains(listItem))    result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить страну по Id
      //  /// </summary>
      //  /// <param name="idCountry">Id страну</param>
      //  /// <returns>Страна</returns>
      //  public static Countries GetCountrybyId(int idCountry)
      //  {
      //      Countries _result = null;
      //      foreach (Countries country in Countries)
      //      {
      //          if (country.IdCountry == idCountry)
      //          {
      //              _result = country;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление страны
      //  /// </summary>
      //  /// <param name="сountry">страна</param>
      //  public static void CountriesUpdate(Countries сountry)
      //  {
      //      if (сountry != null)
      //      {
      //          Countries сountryUpdate = GetCountrybyId(сountry.IdCountry);
      //          if (сountryUpdate != null)
      //          {
      //              сountryUpdate.IsActive = сountry.IsActive;
      //              сountryUpdate.IdOrganisation = сountry.IdOrganisation;
      //              сountryUpdate.CountryEn = сountry.CountryEn;
      //              сountryUpdate.CountryRu = сountry.CountryRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление страны
      //  /// </summary>
      //  /// <param name="сountry">Страна</param>
      //  public static void CountriesInsert(Countries сountry)
      //  {
      //      Entities.Countries.Add(сountry);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление страны
      //  /// </summary>
      //  /// <param name="сountry">Страна</param>
      //  public static void CountriesDelete(Countries сountry)
      //  {
      //      if (сountry != null)
      //      {
      //          Countries сountryDel = GetCountrybyId(сountry.IdCountry);
      //          if (сountryDel != null)
      //          {
      //              Entities.Countries.Remove(сountryDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CustomerClassifications

      //  /// <summary>
      //  /// Список классификаций клиента
      //  /// </summary>
      //  public static List<CustomerClassifications> CustomerClassifications
      //  {
      //      get { return Entities.CustomerClassifications.ToList(); }
      //  }

      //  /// <summary>
      //  /// Только активные классификации клиента
      //  /// </summary>
      //  public static IEnumerable<CustomerClassifications> CustomerClassificationsActive
      //  {
      //      get { return CustomerClassifications.Where(p => p.IsActive.Equals(true)); }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedCustomerClassificationsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (CustomerClassifications item in CustomerClassifications)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdCustomerClassification;
      //          listItem.ParentCollection = CustomerClassifications;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить классификацию клиента по Id
      //  /// </summary>
      //  /// <param name="idCustomerClassification">Id классификации лиента</param>
      //  /// <returns>Классификация клиента</returns>
      //  public static CustomerClassifications GetCustomerClassificationbyId(int idCustomerClassification)
      //  {
      //      CustomerClassifications _result = null;
      //      foreach (CustomerClassifications сlassification in CustomerClassifications)
      //      {
      //          if (сlassification.IdCustomerClassification == idCustomerClassification)
      //          {
      //              _result = сlassification;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление классификации клиента
      //  /// </summary>
      //  /// <param name="сlassification">Классификация клиента</param>
      //  public static void CustomerClassificationsUpdate(CustomerClassifications сlassification)
      //  {
      //      if (сlassification != null)
      //      {
      //          CustomerClassifications сlassificationUpdate =
      //              GetCustomerClassificationbyId(сlassification.IdCustomerClassification);
      //          if (сlassificationUpdate != null)
      //          {
      //              сlassificationUpdate.IsActive = сlassification.IsActive;
      //              сlassificationUpdate.MaxRevenue = сlassification.MaxRevenue;
      //              сlassificationUpdate.MinRevenue = сlassification.MinRevenue;
      //              сlassificationUpdate.NameEn = сlassification.NameEn;
      //              сlassificationUpdate.NameRu = сlassification.NameRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление классификации клиента
      //  /// </summary>
      //  /// <param name="сlassification">Классификация клиента</param>
      //  public static void CustomerClassificationsInsert(CustomerClassifications сlassification)
      //  {
      //      Entities.CustomerClassifications.Add(сlassification);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление классификации клиента
      //  /// </summary>
      //  /// <param name="сlassification">Классификация клиента</param>
      //  public static void CustomerClassificationsDelete(CustomerClassifications сlassification)
      //  {
      //      if (сlassification != null)
      //      {
      //          CustomerClassifications сlassificationDel =
      //              GetCustomerClassificationbyId(сlassification.IdCustomerClassification);
      //          if (сlassificationDel != null)
      //          {
      //              Entities.CustomerClassifications.Remove(сlassificationDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Customers

      //  /// <summary>
      //  /// Список клиентов
      //  /// </summary>
      //  public static List<Customers> Customers
      //  {
      //      get { return Entities.Customers.ToList(); }
      //  }

      //  /// <summary>
      //  /// Только активные клиенты
      //  /// </summary>
      //  public static List<Customers> CustomersActive
      //  {
      //      get
      //      {
      //          List<Customers> result = new List<Customers>();

      //          foreach(var item in Customers)
      //          {
      //              result.Add(item);
      //          }
      //          return result;
      //          //return Customers.Where(p => p.IsActive.Equals(true)).ToList();
      //      }
      //  }

      //  /// <summary>
      //  /// Получить клиента Id
      //  /// </summary>
      //  /// <param name="idCustomer">Id клиента</param>
      //  /// <returns>Клиент</returns>
      //  public static Customers GetCustomerById(int idCustomer)
      //  {
      //      foreach (Customers сustomer in Customers)
      //      {
      //          if (сustomer.IdCustomer == idCustomer) return сustomer;
      //      }
      //      return null;
      //  }

      //  /// <summary>
      //  /// Получение списка клиентов по клиентскому номеру
      //  /// </summary>
      //  /// <param name="seqNumber">Клиентский номер</param>
      //  /// <returns>Список клиентов</returns>
      //  public static Customers GetCustomerBySequentalNumber(int seqNumber)
      //  {
      //      foreach(var item in Customers)
      //      {
      //          if (item.SequentialNumber == seqNumber) return item;
      //      }
      //      return null;
      //  }

      //  /// <summary>
      //  /// Получение клиента по номеру SAP
      //  /// </summary>
      //  /// <param name="sapNumber"></param>
      //  /// <returns>Список Юр лиц</returns>
      //  public static LegalEntities GetLegalEntityBySapNumber(int sapNumber)
      //  {
      //      foreach (var legalEntity in LegalEntities)
      //      {
      //          if (legalEntity.NumberInSAP == sapNumber)
      //          {
                   
      //              return legalEntity;
      //          }
      //      }
      //      return null;
      //  }

      //  /// <summary>
      //  /// Обновление клиента
      //  /// </summary>
      //  /// <param name="customer">клиент</param>
      //  /// <param name="userLogin">Логин пользователя, который делает изменения</param>
      //  public static void CustomersUpdate(Customers customer, string userLogin)
      //  {
      //      if (customer != null)
      //      {
      //          Customers customerUpdate = GetCustomerBySequentalNumber(customer.SequentialNumber);
      //          if (customerUpdate != null)
      //          {
      //              if(customer.IdprofineRegion!=null)
      //              {
      //                  customerUpdate.IdprofineRegion = customer.IdprofineRegion;
      //              }

      //              if(customer.NumberInSAP!=null)
      //              {
      //                  customerUpdate.NumberInSAP = customer.NumberInSAP;
      //              }
      //              if(!string.IsNullOrEmpty(customer.Comments))
      //              {
      //                  customerUpdate.Comments = customer.Comments;
      //              }
                    
      //              if(customer.DateStartProfineRUS>DateTime.MinValue)
      //              {
      //                  customerUpdate.DateStartProfineRUS = customer.DateStartProfineRUS;
      //              }
                    
                    
      //              if (!String.IsNullOrEmpty(customer.Name))
      //              {
      //                  customerUpdate.Name = customer.Name;
      //              }
      //              //customerUpdate.SequentialNumber = customer.SequentialNumber;
      //              customerUpdate.IdUser = userLogin;

      //              if (customer.IdCustomerClassificationsByBusiness!=null)
      //              {
      //                  customerUpdate.IdCustomerClassificationsByBusiness = customer.IdCustomerClassificationsByBusiness;
      //              }
      //              if (customer.IdCustomerClassificationsProfine != null)
      //              {
      //                  customerUpdate.IdCustomerClassificationsProfine = customer.IdCustomerClassificationsProfine;
      //              }
      //              if (customer.IdCustomerClassificationsTurnover != null)
      //              {
      //                  customerUpdate.IdCustomerClassificationsTurnover = customer.IdCustomerClassificationsTurnover;
      //              }

      //              if(customer.IdManager!=null)
      //              {
      //                  customerUpdate.IdManager = customer.IdManager;
      //              }

      //           //   customerUpdate.IsActive = customer.IsActive;
      //              customerUpdate.SaveTime = DateTime.Now;


      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление клиента
      //  /// </summary>
      //  /// <param name="customer">клиент</param>
      //  public static void CustomersInsert(Customers customer)
      //  {
      //      Entities.Customers.Add(customer);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Добавление клиента в базу
      //  /// </summary>
      //  /// <param name="customer">Клиент</param>
      //  /// <param name="userLogin">Пользователь, который вносит изменение</param>
      //  /// <returns>Ид клиента</returns>
      //  public static int CustomersInsert(Customers customer, string userLogin)
      //  {
      //      customer.IdUser = userLogin;
      //      customer.SaveTime = DateTime.Now;
      //      customer.IsActive = true;
      //      int num=MaxCustomerSequentalNumber + 1;
      //      customer.SequentialNumber = num;

      //      Entities.Customers.Add(customer);
      //      DB.Save();
           
      //      var cust=GetCustomerBySequentalNumber(num);

      //      var le = new LegalEntities {Name = cust.Name};
      //      cust.AddLegalEntity(le,userLogin);

      //      Entities = null;

      //      return cust.IdCustomer;
      //  }

        
      //  /// <summary>
      //  /// Максимальный порядковый номер клиента
      //  /// </summary>
      //  public static int MaxCustomerSequentalNumber
      //  {
      //      get
      //      {
      //          return Enumerable.Concat(Customers.Select(customer => customer.SequentialNumber), new[] {0}).Max();
      //      }
      //  }

      //  /// <summary>
      //  /// Удаление клиента
      //  /// </summary>
      //  /// <param name="customer">клиент</param>
      //  public static void CustomersDelete(Customers customer)
      //  {
      //      if (customer != null)
      //      {
      //          Customers customerDel = GetCustomerById(customer.IdCustomer);
      //          if (customerDel != null)
      //          {
      //              Entities.Customers.Remove(customerDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CustomersEquipments

      //  /// <summary>
      //  /// Все инструменты всех клиентов
      //  /// </summary>
      //  public static List<CustomersEquipments> CustomersEquipments
      //  {
      //      get { return Entities.CustomersEquipments.ToList(); }
      //  }

      //  public static void CustomersEquipmentInsert(CustomersEquipments equipments, string idUser)
      //  {
      //      CustomersEquipments newCustEquip = new CustomersEquipments();

      //      newCustEquip.IdUser = idUser;
      //      newCustEquip.IdEquipment = equipments.IdEquipment;
      //      newCustEquip.IdCustomer = equipments.IdCustomer;
      //      newCustEquip.IssueDate = equipments.IssueDate;
      //      newCustEquip.EquipmentCount = equipments.EquipmentCount;

      //      //if(GetCustomersEquipmentsbyIdCustomerAndIdEquipment( newCustEquip.IdCustomer, newCustEquip.IdEquipment)==null)
      //      //{
      //          Entities.CustomersEquipments.Add(newCustEquip);
      //          DB.Save();
      //   //   }

            

      //  }
        
      //      /// <summary>
      //      /// Поиск оборудования клиента
      //      /// </summary>
      //      /// <param name="idCustomer">Идентификатор клиента</param>
      //      /// <param name="idEquipment">Идентификатор оборудования</param>
      //      /// <returns>Связка клиент-оборудование</returns>
      //      public static CustomersEquipments GetCustomersEquipmentsbyIdCustomerAndIdEquipment(int idCustomer, int idEquipment)
      //      {
      //          return CustomersEquipments.FirstOrDefault(p => p.IdCustomer == idCustomer && p.IdEquipment==idEquipment);
      //      }

      //      /// <summary>
      //      /// Список оборудования клиента
      //      /// </summary>
      //      /// <param name="idCustomer"></param>
      //      /// <returns></returns>
      //      public static List<CustomersEquipments> GetCustomersEquipmentsByCustomerId(int idCustomer)
      //      {
      //          var result = new List<CustomersEquipments>();
      //          foreach (var item in DB.CustomersEquipments)
      //          {
      //              if(item.IdCustomer == idCustomer)
      //                  result.Add(item);
      //          }
      //          return result;
      //      }

      //  #endregion

      //  #region Districts

      //  /// <summary>
      //  /// Список областей
      //  /// </summary>
      //  public static List<Districts> Districts
      //  {
      //      get { return Entities.Districts.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные инструменты
      //  /// </summary>
      //  public static IEnumerable<Districts> DistrictsActive
      //  {
      //      get
      //      {
      //          return
      //               Districts.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedDistrictsShortNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (Districts item in Districts)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdDistrict;
      //          listItem.ParentCollection = Districts;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameShortRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameShortEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }




      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedDistrictsShortNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Districts item in Districts)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdDistrict;
      //  //        listItem.ParentCollection = Districts;
      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameShortRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameShortEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }
               
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}


      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedDistrictsNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Districts item in Districts)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdDistrict;
      //  //        listItem.ParentCollection = Districts;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить область по Id
      //  /// </summary>
      //  /// <param name="idDistrict">Id области</param>
      //  /// <returns>Область</returns>
      //  public static Districts GetDistrictbyId(int idDistrict)
      //  {
      //      Districts _result = null;
      //      foreach (Districts district in Districts)
      //      {
      //          if (district.IdDistrict == idDistrict)
      //          {
      //              _result = district;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление области
      //  /// </summary>
      //  /// <param name="district">область</param>
      //  public static void DistrictsUpdate(Districts district)
      //  {
      //      if (district != null)
      //      {
      //          Districts districtUpdate = GetDistrictbyId(district.IdDistrict);
      //          if (districtUpdate != null)
      //          {
      //              districtUpdate.IsActive = district.IsActive;
      //              districtUpdate.IdCountry = district.IdCountry;
      //              districtUpdate.NameEn = district.NameEn;
      //              districtUpdate.NameRu = district.NameRu;
      //              districtUpdate.NameShortEn = district.NameShortEn;
      //              districtUpdate.NameShortRu = district.NameShortRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление области
      //  /// </summary>
      //  /// <param name="district">Область</param>
      //  public static void DistrictsInsert(Districts district)
      //  {
      //      Entities.Districts.Add(district);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление района
      //  /// </summary>
      //  /// <param name="district">Район</param>
      //  public static void DistrictsDelete(Districts district)
      //  {
      //      if (district != null)
      //      {
      //          Districts districtDel = GetDistrictbyId(district.IdDistrict);
      //          if (districtDel != null)
      //          {
      //              Entities.Districts.Remove(districtDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Organisations

      //  /// <summary>
      //  /// Список организаций
      //  /// </summary>
      //  public static List<Organisations> Organisations
      //  {
      //      get { return Entities.Organisations.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные организации
      //  /// </summary>
      //  public static IEnumerable<Organisations> OrganisationsActive
      //  {
      //      get
      //      {
      //          return
      //              Organisations.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedOrganisationsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (Organisations item in Organisations)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdOrganisation;
      //          listItem.ParentCollection = Organisations;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.OrganisationRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.OrganisationEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить организацию по Id
      //  /// </summary>
      //  /// <param name="idOrganisation">Id организации</param>
      //  /// <returns>Организация</returns>
      //  public static Organisations GetOrganisationbyId(int idOrganisation)
      //  {
      //      Organisations _result = null;
      //      foreach (Organisations organisation in Organisations)
      //      {
      //          if (organisation.IdOrganisation == idOrganisation)
      //          {
      //              _result = organisation;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление организации
      //  /// </summary>
      //  /// <param name="organisation">организация</param>
      //  public static void OrganisationsUpdate(Organisations organisation)
      //  {
      //      if (organisation != null)
      //      {
      //          Organisations organisationUpdate = GetOrganisationbyId(organisation.IdOrganisation);
      //          if (organisationUpdate != null)
      //          {
      //              organisationUpdate.IsActive = organisation.IsActive;
      //              organisationUpdate.OrganisationEn = organisation.OrganisationEn;
      //              organisationUpdate.OrganisationRu = organisation.OrganisationRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление организации
      //  /// </summary>
      //  /// <param name="organisation">Организация</param>
      //  public static void OrganisationsInsert(Organisations organisation)
      //  {
      //      Entities.Organisations.Add(organisation);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление организации
      //  /// </summary>
      //  /// <param name="organisation">Организация</param>
      //  public static void OrganisationsDelete(Organisations organisation)
      //  {
      //      if (organisation != null)
      //      {
      //          Organisations organisationDel = GetOrganisationbyId(organisation.IdOrganisation);
      //          if (organisationDel != null)
      //          {
      //              Entities.Organisations.Remove(organisationDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region OwnershipPatterns

      //  /// <summary>
      //  /// Список форм собственности
      //  /// </summary>
      //  public static List<OwnershipPatterns> OwnershipPatterns
      //  {
      //      get { return Entities.OwnershipPatterns.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные формы собственности
      //  /// </summary>
      //  public static IEnumerable<OwnershipPatterns> OwnershipPatternsActive
      //  {
      //      get
      //      {
      //          return
      //              OwnershipPatterns.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedOwnershipPatternsShortNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (OwnershipPatterns item in OwnershipPatterns)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdOwnershipPattern;
      //          listItem.ParentCollection = OwnershipPatterns;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameShortRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameShortEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }


      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedOwnershipPatternsShortNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (OwnershipPatterns item in OwnershipPatterns)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdOwnershipPattern;
      //  //        listItem.ParentCollection = OwnershipPatterns;
      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameShortRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameShortEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }
               
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}


      //  /// <summary>
      //  /// Получить форму собственности по Id
      //  /// </summary>
      //  /// <param name="idOwnershipPattern">Id формы собственности</param>
      //  /// <returns>Форма собственности</returns>
      //  public static OwnershipPatterns GetOwnershipPatternbyId(int idOwnershipPattern)
      //  {
      //      OwnershipPatterns _result = null;
      //      foreach (OwnershipPatterns pattern in OwnershipPatterns)
      //      {
      //          if (pattern.IdOwnershipPattern == idOwnershipPattern)
      //          {
      //              _result = pattern;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление формы собственности
      //  /// </summary>
      //  /// <param name="pattern">Форма собственности</param>
      //  public static void OwnershipPatternsUpdate(OwnershipPatterns pattern)
      //  {
      //      if (pattern != null)
      //      {
      //          OwnershipPatterns patternUpdate = GetOwnershipPatternbyId(pattern.IdOwnershipPattern);
      //          if (patternUpdate != null)
      //          {
      //              patternUpdate.IsActive = pattern.IsActive;
      //              patternUpdate.NameEn = pattern.NameEn;
      //              patternUpdate.NameRu = pattern.NameRu;
      //              patternUpdate.NameShortEn = pattern.NameShortEn;
      //              patternUpdate.NameShortRu = pattern.NameShortRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление формы собственности
      //  /// </summary>
      //  /// <param name="pattern">Форма собственности</param>
      //  public static void OwnershipPatternsInsert(OwnershipPatterns pattern)
      //  {
      //      Entities.OwnershipPatterns.Add(pattern);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление формы собственности
      //  /// </summary>
      //  /// <param name="pattern">Форма собственности</param>
      //  public static void OwnershipPatternsDelete(OwnershipPatterns pattern)
      //  {
      //      if (pattern != null)
      //      {
      //          OwnershipPatterns patternDel = GetOwnershipPatternbyId(pattern.IdOwnershipPattern);
      //          if (patternDel != null)
      //          {
      //              Entities.OwnershipPatterns.Remove(patternDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ProductGroups - moved but not commented

      //      /// <summary>
      //      /// Список групп продуктов
      //      /// </summary>
      //      public static List<ProductGroups> ProductGroups
      //      {
      //          get { return Entities.ProductGroups.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные группы продуктов
      //      /// </summary>
      //      public static IEnumerable<ProductGroups> ProductGroupsActive
      //      {
      //          get
      //          {
      //              return
      //                  ProductGroups.Where(p => p.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получение локализованного списка значений
      //      /// </summary>
      //      /// <param name="culture"></param>
      //      /// <returns></returns>
      //      public static List<LocalizedListItem> GetLocalizedProductGroupsNames(string culture)
      //      {
      //          List<LocalizedListItem> result = null;
      //          foreach (ProductGroups item in ProductGroups)
      //          {
      //              if (result == null) result = new List<LocalizedListItem>();
      //              var listItem = new LocalizedListItem();
      //              listItem.Id = item.IdProductGroup;
      //              listItem.ParentCollection = ProductGroups;
      //              if (culture.Contains("ru"))
      //              {
      //                  listItem.LocaLizedString = item.GroupNameRu;
      //              }
      //              else
      //              {
      //                  listItem.LocaLizedString = item.GroupNameEn;
      //              }
      //              result.Add(listItem);
      //          }
      //          return result;
      //      }

      //      /// <summary>
      //      /// Получить группу продуктов по Id
      //      /// </summary>
      //      /// <param name="idProductGroup">Id группы продуктов</param>
      //      /// <returns>Группа продуктов</returns>
      //      public static ProductGroups GetProductGroupbyId(int idProductGroup)
      //      {
      //          ProductGroups _result = null;
      //          foreach (ProductGroups group in ProductGroups)
      //          {
      //              if (group.IdProductGroup == idProductGroup)
      //              {
      //                  _result = group;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление группы продуктов
      //      /// </summary>
      //      /// <param name="group">Группа продуктов</param>
      //      public static void ProductGroupsUpdate(ProductGroups group)
      //      {
      //          if (group != null)
      //          {
      //              ProductGroups groupUpdate = GetProductGroupbyId(group.IdProductGroup);
      //              if (groupUpdate != null)
      //              {
      //                  groupUpdate.IsActive = group.IsActive;
      //                  groupUpdate.DescriptionEn = group.DescriptionEn;
      //                  groupUpdate.DescriptionGer = group.DescriptionGer;
      //                  groupUpdate.DescriptionRu = group.DescriptionRu;
      //                  groupUpdate.GroupNameEn = group.GroupNameEn;
      //                  groupUpdate.GroupNameRu = group.GroupNameRu;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление группы продуктов
      //      /// </summary>
      //      /// <param name="group">Группа продуктов</param>
      //      public static void ProductGroupsInsert(ProductGroups group)
      //      {
      //          Entities.ProductGroups.Add(group);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление группы продуктов
      //      /// </summary>
      //      /// <param name="group">Группа продуктов</param>
      //      public static void ProductGroupsDelete(ProductGroups group)
      //      {
      //          if (group != null)
      //          {
      //              ProductGroups groupDel = GetProductGroupbyId(group.IdProductGroup);
      //              if (groupDel != null)
      //              {
      //                  Entities.ProductGroups.Remove(groupDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region Products

      //  /// <summary>
      //  /// Список продуктов
      //  /// </summary>
      //  public static List<Products> Products
      //  {
      //      get { return Entities.Products.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные продукты
      //  /// </summary>
      //  public static IEnumerable<Products> ProductsActive
      //  {
      //      get
      //      {
      //          return
      //              Products.Where(a => a.IsActive).Where(b => b.ProductGroups.IsActive).Where(
      //                  c => c.ProfileGeometry.IsActive).Where(d => d.PackingColor.IsActive).Where(
      //                      e => e.OutsideColor.IsActive).Where(
      //                          f => f.InsideColor.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получить продукт по Id
      //  /// </summary>
      //  /// <param name="idProduct">Id продукта</param>
      //  /// <returns>Продукт</returns>
      //  public static Products GetProductbyId(int idProduct)
      //  {
      //      Products _result = null;
      //      foreach (Products product in Products)
      //      {
      //          if (product.IdProduct == idProduct)
      //          {
      //              _result = product;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }


      //  private static List<ProductForSearch> _productsForSearch;

      //  public static List<ProductForSearch> ProductsForSearch
      //  {
      //      get
      //      {
      //          if(_productsForSearch==null)
      //          {
      //              _productsForSearch = new List<ProductForSearch>();
                    
      //          }
      //          return _productsForSearch;
      //      }
      //  }

      //  private static void InitProductsForSearchCollection()
      //  {
      //      foreach(var item in Products)
      //      {
      //          ProductsForSearch.Add(new ProductForSearch{SapNumber=item.SAPMaterialNumber,IdProduct=item.IdProduct});
      //      }
      //  }


      //  /// <summary>
      //  /// Получить продукт по SAP номеру материала
      //  /// </summary>
      //  /// <param name="sapMaterialNumber"></param>
      //  /// <returns>Продукт</returns>
      //  public static ProductForSearch  GetProductForSearchbySapMaterialNumber(string sapMaterialNumber)
      //  {
      //      if(ProductsForSearch==null)
      //      {
      //          InitProductsForSearchCollection();
      //      }
      //      if (ProductsForSearch.Count==0)
      //      {
      //          InitProductsForSearchCollection();
      //      }

      //      var _sapMaterialNumber = sapMaterialNumber;

      //      //if (sapMaterialNumber.StartsWith("00"))
      //      //{
      //      //    _sapMaterialNumber = "88" + sapMaterialNumber.Remove(0, 2);
      //      //}

      //      //if (sapMaterialNumber.Length < 8)
      //      //{
      //      //    _sapMaterialNumber = "00" + sapMaterialNumber;
      //      //}
      //      ProductForSearch _result = null;
      //      foreach (ProductForSearch product in ProductsForSearch)
      //      {
      //          if (product.SapNumber == _sapMaterialNumber)
      //          {
      //              _result = product;
      //              break;
      //          }
      //      }

      //      if (_result == null)
      //      {
      //          _sapMaterialNumber = "88" + sapMaterialNumber;
      //          foreach (ProductForSearch product in ProductsForSearch)
      //          {
      //              if (product.SapNumber == _sapMaterialNumber)
      //              {
      //                  _result = product;
      //                  break;
      //              }
      //          }
      //      }

      //      return _result;
      //  }


      //  /// <summary>
      //  /// Получить продукт по SAP номеру материала
      //  /// </summary>
      //  /// <param name="sapMaterialNumber"></param>
      //  /// <returns>Продукт</returns>
      //  public static Products GetProductbySapMaterialNumber(string sapMaterialNumber)
      //  {
      //      var _sapMaterialNumber = sapMaterialNumber;
            
      //      //if(sapMaterialNumber.StartsWith("00"))
      //      //{
      //      //    _sapMaterialNumber = "88" + sapMaterialNumber.Remove(0,2);
      //      //}
            
      //      if(sapMaterialNumber.Length<8)
      //      {
      //          _sapMaterialNumber = "00" + sapMaterialNumber;
      //      }
      //      Products _result = null;
      //      foreach (Products product in Products)
      //      {
      //          if (product.SAPMaterialNumber == _sapMaterialNumber)
      //          {
      //              _result = product;
      //              break;
      //          }
      //      }
            
      //      if(_result==null)
      //      {
      //          _sapMaterialNumber = "88" + sapMaterialNumber;
      //          foreach (Products product in Products)
      //          {
      //              if (product.SAPMaterialNumber == _sapMaterialNumber)
      //              {
      //                  _result = product;
      //                  break;
      //              }
      //          }
      //      }

      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление продукта
      //  /// </summary>
      //  /// <param name="product">Продукт</param>
      //  public static void ProductsUpdate(Products product)
      //  {
      //      if (product != null)
      //      {
      //          Products productUpdate = GetProductbyId(product.IdProduct);
      //          if (productUpdate != null)
      //          {
      //              productUpdate.IsActive = product.IsActive;
      //              productUpdate.SAPMaterialNumber = product.SAPMaterialNumber;
      //              productUpdate.MountingDepth = product.MountingDepth;
      //              productUpdate.IdProductGroup = product.IdProductGroup;
      //              productUpdate.IdProfileGeometry = product.IdProfileGeometry;
      //              productUpdate.IdPackingColor = product.IdPackingColor;
      //              productUpdate.IdOutsideColor = product.IdOutsideColor;
      //              productUpdate.IdInsideColor = product.IdInsideColor;
      //              productUpdate.ProfileLength = product.ProfileLength;
      //              productUpdate.Aricle = product.Aricle;
      //              productUpdate.IdInstrumentGeometry = product.IdInstrumentGeometry;
      //              productUpdate.ArticleLong = product.ArticleLong;
      //              productUpdate.Weight = product.Weight;
      //              productUpdate.StabProPallette = product.StabProPallette;
      //              productUpdate.IdProductSystem = product.IdProductSystem;
      //             // productUpdate.IdProductSystemName = product.IdProductSystemName;
      //            //  productUpdate.IdProductMark = product.IdProductMark;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление продукта
      //  /// </summary>
      //  /// <param name="product">Продукт</param>
      //  public static void ProductsInsert(Products product)
      //  {
      //      Add(product);
      //      product=Entities.Products.Add(product);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление продукта
      //  /// </summary>
      //  /// <param name="product">Продукт</param>
      //  public static void ProductsDelete(Products product)
      //  {
      //      if (product != null)
      //      {
      //          Products productDel = GetProductbyId(product.IdProduct);
      //          if (productDel != null)
      //          {
      //              Entities.Products.Remove(productDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  public static bool Add<E>(E entity) where E : class
      //  {
      //      Entities.Entry(entity).State = System.Data.EntityState.Added;

      //   //   Save();

      //      return true;
      //  }

      //public static ProductGroups GetProductGroupByName(string name)
      //{
      //    return ProductGroups.FirstOrDefault(s => s.GroupNameRu == name);
      //}

      //  //public static Geometries GetGeometrieByName(string name)
      //  //{
      //  //   // name = name.Remove(name.IndexOf('.') + 1);
      //  //    return Geometries.FirstOrDefault(s => s.Geometry == name);
      //  //}

      //  public static Colors GetColorBySAPName(string name)
      //  {
      //      return Colors.FirstOrDefault(s => s.NameSAP == name);
      //  }

      //  //public static void SAPBDSync()
      //  //{

      //  //    int c = Customers.Count();

      //  //    foreach (var item in Entities.SapMaterialExport)
      //  //    {
      //  //        string num = item.Материал.ToString();
      //  //        if (num.Length == 6)
      //  //            num = "00" + num;

      //  //        var product = GetProductbySapMaterialNumber(num);

      //  //        if (product == null)
      //  //        {
      //  //            product = new Products();
                    
      //  //            product.SAPMaterialNumber = num;
      //  //            product.MountingDepth = Convert.ToInt32(item.System_Bautiefe);

      //  //            var productGroup = GetProductGroupByName(item.Produktgruppe);
      //  //            if (productGroup != null)
      //  //            {
      //  //                //product.IdProductGroup = item.Produktgruppe;
      //  //                product.IdProductGroup = productGroup.IdProductGroup;
      //  //            }
      //  //            int profGeom = 0;
      //  //            Geometries profileGeometry=null;
      //  //            if (item.Geometrie != null)
      //  //                Int32.TryParse(item.Geometrie.ToString(), out profGeom);
      //  //            if (profGeom!=0) 
      //  //                profileGeometry = GetGeometrieByName(profGeom.ToString());
      //  //            if (profileGeometry == null)
      //  //            {
      //  //                var geo = new Geometries();
      //  //                geo.Geometry = profGeom.ToString();
      //  //                geo.IsActive = true;
      //  //                geo.IdUser = "28prygun01";

      //  //                GeometriesInsert(geo);
      //  //                profileGeometry = GetGeometrieByName(profGeom.ToString());
      //  //                product.IdProfileGeometry = profileGeometry.IdGeometry;
      //  //            }
      //  //            else
      //  //            {
      //  //                product.IdProfileGeometry = profileGeometry.IdGeometry;
      //  //            }
                    

      //  //            var packingColor = GetColorBySAPName(item.Dichtungsfarbe);
      //  //            if (packingColor != null)
      //  //            {
      //  //                product.IdPackingColor = packingColor.IdColor;
      //  //                //product.IdPackingColor=item.Dichtungsfarbe
      //  //            }

      //  //            var outsideColor = GetColorBySAPName(item.Farbe_Aussen);
      //  //            if (outsideColor != null)
      //  //            {
      //  //                product.IdOutsideColor = outsideColor.IdColor;
      //  //                //product.IdPackingColor=item.Dichtungsfarbe
      //  //            }


      //  //            var insideColor = GetColorBySAPName(item.Farbe_Innen);
      //  //            if (insideColor != null)
      //  //            {
      //  //                product.IdInsideColor = insideColor.IdColor;
      //  //                //product.IdPackingColor=item.Dichtungsfarbe
      //  //            }





      //  //            product.ProfileLength = Convert.ToInt32(item.Profillänge);
      //  //            product.Aricle = item.Краткий_текст_материала;


      //  //            var instrumentGeometry = GetGeometrieByName(item.Werkzeuggeo);
      //  //            if (instrumentGeometry == null)
      //  //            {
      //  //                var geo = new Geometries();
      //  //                geo.Geometry = item.Werkzeuggeo;
      //  //                geo.IsActive = true;
      //  //                geo.IdUser = "28prygun01";



      //  //                GeometriesInsert(geo);
      //  //                profileGeometry = GetGeometrieByName(item.Werkzeuggeo);
      //  //                if(profileGeometry!=null)
      //  //                product.IdProfileGeometry = profileGeometry.IdGeometry;

      //  //            }
      //  //            else
      //  //            {
      //  //                product.IdInstrumentGeometry = instrumentGeometry.IdGeometry;
      //  //            }
      //  //            //product.IdInstrumentGeometry = item.Werkzeuggeo;
      //  //            product.ArticleLong = item.Краткий_текст_материала;
      //  //            if (item.System_Bautiefe != null)
      //  //            {
      //  //                product.MountingDepth = (int) item.System_Bautiefe;
      //  //            }
      //  //            else
      //  //            {
      //  //                product.MountingDepth = 0;
      //  //            }
      //  //            product.Weight = 0;
      //  //            product.IsActive = true;
      //  //            product.IdUser = "28prygun01";

      //  //            ProductsInsert(product);

      //  //            Save();
      //  //        }
      //  //    }

      //  //    Save();
      //  //}

      //  #endregion

      //  #region profineRegions

      //  /// <summary>
      //  /// Список регионов профайн
      //  /// </summary>
      //  public static List<profineRegions> profineRegions
      //  {
      //      get { return Entities.profineRegions.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные регионы профайн
      //  /// </summary>
      //  public static IEnumerable<profineRegions> profineRegionsActive
      //  {
      //      get
      //      {
      //          return
      //              profineRegions.Where(p => p.IsActive).Where(q => q.Countries.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedProfineRegionsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (profineRegions item in profineRegions)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdProfineRegion;
      //          listItem.ParentCollection = profineRegions;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить регион профайн по Id
      //  /// </summary>
      //  /// <param name="idprofineRegions">Id региона профайн</param>
      //  /// <returns>Ргион профайн</returns>
      //  public static profineRegions GetprofineRegionbyId(int idprofineRegions)
      //  {
      //      profineRegions _result = null;
      //      foreach (profineRegions reg in profineRegions)
      //      {
      //          if (reg.IdProfineRegion == idprofineRegions)
      //          {
      //              _result = reg;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  public static profineRegions GetprofineRegionbyNameRu(string profineRegionNameRu)
      //  {
      //     // profineRegions _result = null;
      //      foreach (var reg in profineRegions.Where(reg => reg.NameRu == profineRegionNameRu))
      //      {
      //          return reg;
      //      }

      //      return null;
      //  }

      //  /// <summary>
      //  /// Обновление регион профайн
      //  /// </summary>
      //  /// <param name="reg">ргион профайн</param>
      //  public static void profineRegionsUpdate(profineRegions reg)
      //  {
      //      if (reg != null)
      //      {
      //          profineRegions regUpdate = GetprofineRegionbyId(reg.IdProfineRegion);
      //          if (regUpdate != null)
      //          {
      //              regUpdate.IsActive = reg.IsActive;
      //              regUpdate.IdCountry = reg.IdCountry;
      //              regUpdate.NameEn = reg.NameEn;
      //              regUpdate.NameRu = reg.NameRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление региона профайн
      //  /// </summary>
      //  /// <param name="reg">ргион профайн</param>
      //  public static void profineRegionsInsert(profineRegions reg)
      //  {
      //      Entities.profineRegions.Add(reg);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление региона профайн
      //  /// </summary>
      //  /// <param name="reg">ргион профайн</param>
      //  public static void profineRegionsDelete(profineRegions reg)
      //  {
      //      if (reg != null)
      //      {
      //          profineRegions regDel = GetprofineRegionbyId(reg.IdProfineRegion);
      //          if (regDel != null)
      //          {
      //              Entities.profineRegions.Remove(regDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Regions

      //  /// <summary>
      //  /// Список регионов
      //  /// </summary>
      //  public static List<Regions> Regions
      //  {
      //      get { return Entities.Regions.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные регионы
      //  /// </summary>
      //  public static IEnumerable<Regions> RegionsActive
      //  {
      //      get
      //      {
      //          return
      //              Regions.Where(a => a.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedRegionsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (Regions item in Regions)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdRegion;
      //          listItem.ParentCollection = Regions;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
        
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedRegionsNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Regions item in Regions)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdRegion;
      //  //        listItem.ParentCollection = Regions;
      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }
               
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}


      //  /// <summary>
      //  /// Получить регион по Id
      //  /// </summary>
      //  /// <param name="idRegion">Id региона</param>
      //  /// <returns>регион</returns>
      //  public static Regions GetRegionbyId(int idRegion)
      //  {
      //      Regions _result = null;
      //      foreach (Regions reg in Regions)
      //      {
      //          if (reg.IdRegion == idRegion)
      //          {
      //              _result = reg;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление региона
      //  /// </summary>
      //  /// <param name="reg">регион</param>
      //  public static void RegionsUpdate(Regions reg)
      //  {
      //      if (reg != null)
      //      {
      //          Regions regUpdate = GetRegionbyId(reg.IdRegion);
      //          if (regUpdate != null)
      //          {
      //              regUpdate.IsActive = reg.IsActive;
      //              regUpdate.NameRu = reg.NameRu;
      //              regUpdate.NameEn = reg.NameEn;
      //              regUpdate.IdDistrict = reg.IdDistrict;
      //              regUpdate.IdProfineRegion = reg.IdProfineRegion;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление региона
      //  /// </summary>
      //  /// <param name="reg">регион</param>
      //  public static void RegionsInsert(Regions reg)
      //  {
      //      Entities.Regions.Add(reg);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление региона
      //  /// </summary>
      //  /// <param name="reg">регион</param>
      //  public static void RegionsDelete(Regions reg)
      //  {
      //      if (reg != null)
      //      {
      //          Regions regDel = GetRegionbyId(reg.IdRegion);
      //          if (regDel != null)
      //          {
      //              Entities.Regions.Remove(regDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Settlements

      //  /// <summary>
      //  /// Список населенных пунктов
      //  /// </summary>
      //  public static IEnumerable<Settlements> Settlements
      //  {
      //      get
      //      {
      //          //List<Settlements> result = new List<Settlements>();
      //          //for (int i = 1; i < 1000; i++)
      //          //{
      //          //    result.Add(Entities.Settlements.Single(p=>p.IdSettlement==i));
      //          //}
      //              return Entities.Settlements;
      //      }
      //  }

      //  public static IEnumerable<v_Settlements> v_Settlements
      //  {
      //      get { return Entities.v_Settlements; }
      //  } 

      //  /// <summary>
      //  /// Активные населенные пункты
      //  /// </summary>
      //  public static IEnumerable<Settlements> SettlementsActive
      //  {
      //      get
      //      {
      //          return
      //              Settlements.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedSettlementsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (Settlements item in Settlements)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdSettlement;
      //          listItem.ParentCollection = Settlements;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedSettlementsNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Settlements item in Settlements)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdSettlement;
      //  //        listItem.ParentCollection = Settlements;
      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }
               
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}


      //  /// <summary>
      //  /// Получить населенный пункт по Id
      //  /// </summary>
      //  /// <param name="idSettlement">Id населенного пункта</param>
      //  /// <returns>населенный пункт</returns>
      //  public static Settlements GetSettlementbyId(int idSettlement)
      //  {
      //      return Settlements.FirstOrDefault(p => p.IdSettlement == idSettlement);
      //  }

      //  /// <summary>
      //  /// Обновление населенного пункта
      //  /// </summary>
      //  /// <param name="settlement">населенный пункт</param>
      //  public static void SettlementsUpdate(Settlements settlement)
      //  {
      //      if (settlement != null)
      //      {
      //          Settlements settlementUpdate = GetSettlementbyId(settlement.IdSettlement);
      //          if (settlementUpdate != null)
      //          {
      //              settlementUpdate.IsActive = settlement.IsActive;
      //              settlementUpdate.NameEn = settlement.NameEn;
      //              settlementUpdate.NameRu = settlement.NameRu;
      //              settlementUpdate.IdArea = settlement.IdArea;
      //              settlementUpdate.IdRegion = settlement.IdRegion;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление населенного пункта
      //  /// </summary>
      //  /// <param name="settlement">населенный пункт</param>
      //  public static void SettlementsInsert(Settlements settlement)
      //  {
      //      Entities.Settlements.Add(settlement);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление населенного пункта
      //  /// </summary>
      //  /// <param name="settlement">населенный пункт</param>
      //  public static void SettlementsDelete(Settlements settlement)
      //  {
      //      if (settlement != null)
      //      {
      //          Settlements settlementDel = GetSettlementbyId(settlement.IdSettlement);
      //          if (settlementDel != null)
      //          {
      //             Entities.Settlements.Remove(settlementDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ProductVendors - moved but not commented

      //      /// <summary>
      //      /// Список производителей продуктов
      //      /// </summary>
      //      public static List<ProductVendors> ProductVendors
      //      {
      //          get { return Entities.ProductVendors.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные производители продуктов
      //      /// </summary>
      //      public static IEnumerable<ProductVendors> ProductVendorsActive
      //      {
      //          get
      //          {
      //              return
      //                  ProductVendors.Where(p => p.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получение локализованного списка значений
      //      /// </summary>
      //      /// <param name="culture"></param>
      //      /// <returns></returns>
      //      public static List<LocalizedListItem> GetLocalizedProductVendorsNames(string culture)
      //      {
      //          List<LocalizedListItem> result = null;
      //          foreach (ProductVendors item in ProductVendors)
      //          {
      //              if (result == null) result = new List<LocalizedListItem>();
      //              var listItem = new LocalizedListItem();
      //              listItem.Id = item.IdProductVendor;
      //              listItem.ParentCollection = ProductVendors;
      //              if (culture.Contains("ru"))
      //              {
      //                  listItem.LocaLizedString = item.ProductVendorRu;
      //              }
      //              else
      //              {
      //                  listItem.LocaLizedString = item.ProductVendorEn;
      //              }
      //              result.Add(listItem);
      //          }
      //          return result;
      //      }

      //      /// <summary>
      //      /// Получить производителя продуктов по Id
      //      /// </summary>
      //      /// <param name="idProductVendor">Id производителя продуктов</param>
      //      /// <returns>производитель продуктов</returns>
      //      public static ProductVendors GetProductVendorbyId(int idProductVendor)
      //      {
      //          ProductVendors _result = null;
      //          foreach (ProductVendors productVendor in ProductVendors)
      //          {
      //              if (productVendor.IdProductVendor == idProductVendor)
      //              {
      //                  _result = productVendor;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление производителей продуктов
      //      /// </summary>
      //      /// <param name="productVendor">производитель продуктов</param>
      //      public static void ProductVendorsUpdate(ProductVendors productVendor)
      //      {
      //          if (productVendor != null)
      //          {
      //              ProductVendors productVendorUpdate = GetProductVendorbyId(productVendor.IdProductVendor);
      //              if (productVendorUpdate != null)
      //              {
      //                  productVendorUpdate.IsActive = productVendor.IsActive;
      //                  productVendorUpdate.ProductVendorEn = productVendor.ProductVendorEn;
      //                  productVendorUpdate.ProductVendorRu = productVendor.ProductVendorRu;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление производителей продуктов
      //      /// </summary>
      //      /// <param name="productVendor">производитель продуктов</param>
      //      public static void ProductVendorsInsert(ProductVendors productVendor)
      //      {
      //          Entities.ProductVendors.Add(productVendor);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление производителей продуктов
      //      /// </summary>
      //      /// <param name="productVendor">производитель продуктов</param>
      //      public static void ProductVendorsDelete(ProductVendors productVendor)
      //      {
      //          if (productVendor != null)
      //          {
      //              ProductVendors productVendorDel = GetProductVendorbyId(productVendor.IdProductVendor);
      //              if (productVendorDel != null)
      //              {
      //                  Entities.ProductVendors.Remove(productVendorDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region ProductMarks moved but not commented

      //      /// <summary>
      //      /// Список марок продуктов
      //      /// </summary>
      //      public static List<ProductMarks> ProductMarks
      //      {
      //          get { return Entities.ProductMarks.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные марки продуктов
      //      /// </summary>
      //      public static IEnumerable<ProductMarks> ProductMarksActive
      //      {
      //          get
      //          {
      //              return
      //                  ProductMarks.Where(p => p.IsActive).Where(q => q.ProductVendors.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получить марку продукта по Id
      //      /// </summary>
      //      /// <param name="idProductMark">Id марки продукта</param>
      //      /// <returns>марка продукта</returns>
      //      public static ProductMarks GetProductMarkbyId(int idProductMark)
      //      {
      //          ProductMarks _result = null;
      //          foreach (ProductMarks productMark in ProductMarks)
      //          {
      //              if (productMark.IdProductMark == idProductMark)
      //              {
      //                  _result = productMark;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление марки продукта
      //      /// </summary>
      //      /// <param name="productMarkItem">марка продукта</param>
      //      public static void ProductMarksUpdate(ProductMarks productMarkItem)
      //      {
      //          if (productMarkItem != null)
      //          {
      //              ProductMarks productMarkUpdate = GetProductMarkbyId(productMarkItem.IdProductMark);
      //              if (productMarkUpdate != null)
      //              {
      //                  productMarkUpdate.IsActive = productMarkItem.IsActive;
      //                  productMarkUpdate.ProductMark = productMarkItem.ProductMark;
      //                  productMarkUpdate.IdParentProductMark = productMarkItem.IdParentProductMark;
      //                  productMarkUpdate.IdProductVendor = productMarkItem.IdProductVendor;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление марки продукта
      //      /// </summary>
      //      /// <param name="productMarkItem">марка продукта</param>
      //      public static void ProductMarksInsert(ProductMarks productMarkItem)
      //      {
      //          Entities.ProductMarks.Add(productMarkItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление марки продукта
      //      /// </summary>
      //      /// <param name="productMarkItem">марка продукта</param>
      //      public static void ProductMarksDelete(ProductMarks productMarkItem)
      //      {
      //          if (productMarkItem != null)
      //          {
      //              ProductMarks productMarkDel = GetProductMarkbyId(productMarkItem.IdProductMark);
      //              if (productMarkDel != null)
      //              {
      //                  Entities.ProductMarks.Remove(productMarkDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region Tools - moved but not commented

      //      /// <summary>
      //      /// Список инструментов
      //      /// </summary>
      //      public static List<Tools> Tools
      //      {
      //          get { return Entities.Tools.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные инструменты
      //      /// </summary>
      //      public static IEnumerable<Tools> ToolsActive
      //      {
      //          get
      //          {
      //              return
      //                  Tools.Where(p => p.IsActive).Where(q => q.ToolVendors.IsActive).Where(
      //                      g => g.ToolGroups.IsActive == true);
      //          }
      //      }

      //      /// <summary>
      //      /// Получить инструмент по Id
      //      /// </summary>
      //      /// <param name="idTool">Id инструмента</param>
      //      /// <returns>инструмент</returns>
      //      public static Tools GetToolbyId(int idTool)
      //      {
      //          Tools _result = null;
      //          foreach (Tools tool in Tools)
      //          {
      //              if (tool.IdTool == idTool)
      //              {
      //                  _result = tool;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление инструмена
      //      /// </summary>
      //      /// <param name="toolItem">инструмент</param>
      //      public static void ToolsUpdate(Tools toolItem)
      //      {
      //          if (toolItem != null)
      //          {
      //              Tools toolUpdate = GetToolbyId(toolItem.IdTool);
      //              if (toolUpdate != null)
      //              {
      //                  toolUpdate.IsActive = toolItem.IsActive;
      //                  toolUpdate.Article = toolItem.Article;
      //                  toolUpdate.Price = toolItem.Price;
      //                  toolUpdate.IdToolGroup = toolItem.IdToolGroup;
      //                  toolUpdate.IdVendor = toolItem.IdVendor;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление инструмена
      //      /// </summary>
      //      /// <param name="toolItem">инструмент</param>
      //      public static void ToolsInsert(Tools toolItem)
      //      {
      //          Entities.Tools.Add(toolItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление инструмена
      //      /// </summary>
      //      /// <param name="toolItem">инструмент</param>
      //      public static void ToolsDelete(Tools toolItem)
      //      {
      //          if (toolItem != null)
      //          {
      //              Tools toolDel = GetToolbyId(toolItem.IdTool);
      //              if (toolDel != null)
      //              {
      //                  Entities.Tools.Remove(toolDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region Equipments - moved but not commented

      //      /// <summary>
      //      /// Список оборудования
      //      /// </summary>
      //      public static List<Equipments> Equipments
      //      {
      //          get { return Entities.Equipments.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активное оборудование
      //      /// </summary>
      //      public static IEnumerable<Equipments> EquipmentsActive
      //      {
      //          get
      //          {
      //              return
      //                  Equipments.Where(p => p.IsActive).Where(q => q.Vendors.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получить оборудование по Id
      //      /// </summary>
      //      /// <param name="idEquipment">Id оборудования</param>
      //      /// <returns>оборудование</returns>
      //      public static Equipments GetEquipmentbyId(int idEquipment)
      //      {
      //          Equipments _result = null;
      //          foreach (Equipments equipment in Equipments)
      //          {
      //              if (equipment.IdEquipment == idEquipment)
      //              {
      //                  _result = equipment;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Получить оборудование по названию
      //      /// </summary>
      //      /// <param name="equipmentName">Название оборудования</param>
      //      /// <returns>оборудование</returns>
      //      public static Equipments GetEquipmentbyName(string  equipmentName)
      //      {
      //          return Enumerable.FirstOrDefault(Equipments, equipment => equipment.Model == equipmentName);
      //      }

      //      /// <summary>
      //      /// Обновление оборудования
      //      /// </summary>
      //      /// <param name="equipmentItem">оборудование</param>
      //      public static void EquipmentsUpdate(Equipments equipmentItem)
      //      {
      //          if (equipmentItem != null)
      //          {
      //              Equipments equipmentUpdate = GetEquipmentbyId(equipmentItem.IdEquipment);
      //              if (equipmentUpdate != null)
      //              {
      //                  equipmentUpdate.IsActive = equipmentItem.IsActive;
      //                  equipmentUpdate.Model = equipmentItem.Model;
      //                  equipmentUpdate.IdEquipmentType = equipmentItem.IdEquipmentType;
      //                  equipmentUpdate.IdVendor = equipmentItem.IdVendor;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление оборудования
      //      /// </summary>
      //      /// <param name="equipmentItem">оборудование</param>
      //      public static void EquipmentsInsert(Equipments equipmentItem)
      //      {
      //          Entities.Equipments.Add(equipmentItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление оборудования
      //      /// </summary>
      //      /// <param name="equipmentItem">оборудование</param>
      //      public static void EquipmentsDelete(Equipments equipmentItem)
      //      {
      //          if (equipmentItem != null)
      //          {
      //              Equipments equipmentDel = GetEquipmentbyId(equipmentItem.IdEquipment);
      //              if (equipmentDel != null)
      //              {
      //                  Entities.Equipments.Remove(equipmentDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

        //#region ToolVendors

        ///// <summary>
        ///// Список поставщиков
        ///// </summary>
        ////public static List<ToolVendors> ToolVendors
        ////{
        ////    get { return Entities.ToolVendors; }
        ////}

        ///// <summary>
        ///// Активные поставщики
        ///// </summary>
        ////public static IQueryable<ToolVendors> ToolVendorsActive
        ////{
        ////    get
        ////    {
        ////        return
        ////            ToolVendors.Where(p => p.IsActive);
        ////    }
        ////}

        ///// <summary>
        ///// Получить поставщика по Id
        ///// </summary>
        ///// <param name="idToolVendor">Id поставщика</param>
        ///// <returns>поставщика</returns>
        ////public static ToolVendors GetToolVendorbyId(int idToolVendor)
        ////{
        ////    ToolVendors _result = null;
        ////    foreach (ToolVendors toolVendor in ToolVendors)
        ////    {
        ////        if (toolVendor.IdToolVendor == idToolVendor)
        ////        {
        ////            _result = toolVendor;
        ////            break;
        ////        }
        ////    }
        ////    return _result;
        ////}

        ///// <summary>
        ///// Обновление поставщика
        ///// </summary>
        ///// <param name="toolVendorItem">поставщик</param>
        ////public static void ToolVendorsUpdate(ToolVendors toolVendorItem)
        ////{
        ////    if (toolVendorItem != null)
        ////    {
        ////        ToolVendors toolVendorkUpdate = GetToolVendorbyId(toolVendorItem.IdToolVendor);
        ////        if (toolVendorkUpdate != null)
        ////        {
        ////            toolVendorkUpdate.IsActive = toolVendorItem.IsActive;
        ////            toolVendorkUpdate.ToolVendor = toolVendorItem.ToolVendor;

        ////            DB.Save();
        ////        }
        ////    }
        ////}

        ///// <summary>
        ///// Добавление поставщика
        ///// </summary>
        ///// <param name="toolVendorItem">поставщик</param>
        //public static void ToolVendorsInsert(ToolVendors toolVendorItem)
        //{
        //    Entities.ToolVendors.Add(toolVendorItem);
        //    DB.Save();
        //}

        ///// <summary>
        ///// Удаление поставщика
        ///// </summary>
        ///// <param name="toolVendorItem">поставщик</param>
        //public static void ToolVendorsDelete(ToolVendors toolVendorItem)
        //{
        //    if (toolVendorItem != null)
        //    {
        //        ToolVendors toolVendorDel = GetToolVendorbyId(toolVendorItem.IdToolVendor);
        //        if (toolVendorDel != null)
        //        {
        //            ToolVendors.Remove(toolVendorDel);
        //            DB.Save();
        //        }
        //    }
        //}

        //#endregion

      //  #region ToolGroups - moved but not commented

      //      /// <summary>
      //      /// Список групп инструментов
      //      /// </summary>
      //      public static List<ToolGroups> ToolGroups
      //      {
      //          get { return Entities.ToolGroups.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные группы инструметнов
      //      /// </summary>
      //      public static IEnumerable<ToolGroups> ToolGroupsActive
      //      {
      //          get
      //          {
      //              return
      //                  ToolGroups.Where(p => p.IsActive == true);
      //          }
      //      }

      //      /// <summary>
      //      /// Получение локализованного списка значений
      //      /// </summary>
      //      /// <param name="culture"></param>
      //      /// <returns></returns>
      //      public static List<LocalizedListItem> GetLocalizedToolGroupsNames(string culture)
      //      {
      //          List<LocalizedListItem> result = null;
      //          foreach (ToolGroups item in ToolGroupsActive)
      //          {
      //              if (result == null) result = new List<LocalizedListItem>();
      //              var listItem = new LocalizedListItem();
      //              listItem.Id = item.IdToolGroup;
      //              listItem.ParentCollection = ToolGroups;
      //              if (culture.Contains("ru"))
      //              {
      //                  listItem.LocaLizedString = item.ToolGroupRu;
      //              }
      //              else
      //              {
      //                  listItem.LocaLizedString = item.ToolGroupEn;
      //              }
      //              result.Add(listItem);
      //          }
      //          return result;
      //      }

      //      /// <summary>
      //      /// Получить группу инструментов по Id
      //      /// </summary>
      //      /// <param name="idToolGroup">Id группы инструментов</param>
      //      /// <returns>группа инструментов</returns>
      //      public static ToolGroups GetToolGroupbyId(int idToolGroup)
      //      {
      //          ToolGroups _result = null;
      //          foreach (ToolGroups toolGroup in ToolGroups)
      //          {
      //              if (toolGroup.IdToolGroup == idToolGroup)
      //              {
      //                  _result = toolGroup;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление группы продуктов
      //      /// </summary>
      //      /// <param name="toolGroupItem">группа продуктов</param>
      //      public static void ToolGroupsUpdate(ToolGroups toolGroupItem)
      //      {
      //          if (toolGroupItem != null)
      //          {
      //              ToolGroups toolGroupUpdate = GetToolGroupbyId(toolGroupItem.IdToolGroup);
      //              if (toolGroupUpdate != null)
      //              {
      //                  toolGroupUpdate.IsActive = toolGroupItem.IsActive;
      //                  toolGroupUpdate.ToolGroupEn = toolGroupItem.ToolGroupEn;
      //                  toolGroupUpdate.ToolGroupRu = toolGroupItem.ToolGroupRu;
      //                  toolGroupUpdate.IdParentToolGroup = toolGroupItem.IdParentToolGroup;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление группы продуктов
      //      /// </summary>
      //      /// <param name="toolGroupItem">группа продуктов</param>
      //      public static void ToolGroupsInsert(ToolGroups toolGroupItem)
      //      {
      //          Entities.ToolGroups.Add(toolGroupItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление группы продуктов
      //      /// </summary>
      //      /// <param name="toolGroupItem">группа продуктов</param>
      //      public static void ToolGroupsDelete(ToolGroups toolGroupItem)
      //      {
      //          if (toolGroupItem != null)
      //          {
      //              ToolGroups toolGroupDel = GetToolGroupbyId(toolGroupItem.IdToolGroup);
      //              if (toolGroupDel != null)
      //              {
      //                  Entities.ToolGroups.Remove(toolGroupDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region EquipmentTypes - moved but not commented

      //      /// <summary>
      //      /// Список типов оборудования
      //      /// </summary>
      //      public static List<EquipmentTypes> EquipmentTypes
      //      {
      //          get { return Entities.EquipmentTypes.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные типы оборудования
      //      /// </summary>
      //      public static IEnumerable<EquipmentTypes> EquipmentTypesActive
      //      {
      //          get
      //          {
      //              return
      //                  EquipmentTypes.Where(p => p.IsActive);
      //          }
      //      }
      
      //      ///// <summary>
      //      ///// Получение локализованного списка значений
      //      ///// </summary>
      //      ///// <param name="culture"></param>
      //      ///// <returns></returns>
      //      //public static List<LocalizedListItem> GetLocalizedEquipmentTypes(string culture)
      //      //{
      //      //    List<LocalizedListItem> result = null;
      //      //    foreach (EquipmentTypes item in EquipmentTypes)
      //      //    {
      //      //        if (result == null) result = new List<LocalizedListItem>();
      //      //        var listItem = new LocalizedListItem { Id = item.IdEquipmentType, ParentCollection = TrainingsPlaces };
      //      //        if (culture.Contains("ru"))
      //      //        {
      //      //            listItem.LocaLizedString = item.EquipmentTypeRu;
      //      //        }
      //      //        else
      //      //        {
      //      //            listItem.LocaLizedString = item.EquipmentTypeEn;
      //      //        }
      //      //        result.Add(listItem);
      //      //    }
      //      //    return result;
      //      //}

      //      ///// <summary>
      //      ///// Получение локализованного списка значений
      //      ///// </summary>
      //      ///// <returns></returns>
      //      //public static List<LocalizedListItem> GetLocalizedEquipmentTypes()
      //      //{
      //      //    List<LocalizedListItem> result = null;
      //      //    foreach (EquipmentTypes item in EquipmentTypes)
      //      //    {
      //      //        if (result == null) result = new List<LocalizedListItem>();
      //      //        var listItem = new LocalizedListItem { Id = item.IdEquipmentType, ParentCollection = TrainingsPlaces };
      //      //        switch(CurrentLanguage)
      //      //        {
      //      //            case CurrentLanguage.Russian:
      //      //                listItem.LocaLizedString = item.EquipmentTypeRu;
      //      //                break;
      //      //            case CurrentLanguage.English:
      //      //                listItem.LocaLizedString = item.EquipmentTypeEn;
      //      //                break;
      //      //            default:
      //      //                throw new ArgumentOutOfRangeException();
      //      //        }

               
      //      //        result.Add(listItem);
      //      //    }
      //      //    return result;
      //      //}

      //      /// <summary>
      //      /// Получить тип оборудования по Id
      //      /// </summary>
      //      /// <param name="idEquipmentType">Id типа оборудования</param>
      //      /// <returns>тип оборудования</returns>
      //      public static EquipmentTypes GetEquipmentTypebyId(int idEquipmentType)
      //      {
      //          EquipmentTypes _result = null;
      //          foreach (EquipmentTypes equipmentType in EquipmentTypes)
      //          {
      //              if (equipmentType.IdEquipmentType == idEquipmentType)
      //              {
      //                  _result = equipmentType;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление типа оборудования
      //      /// </summary>
      //      /// <param name="equipmentTypeItem">тип оборудования</param>
      //      public static void EquipmentTypesUpdate(EquipmentTypes equipmentTypeItem)
      //      {
      //          if (equipmentTypeItem != null)
      //          {
      //              EquipmentTypes equipmentTypeUpdate = GetEquipmentTypebyId(equipmentTypeItem.IdEquipmentType);
      //              if (equipmentTypeUpdate != null)
      //              {
      //                  equipmentTypeUpdate.IsActive = equipmentTypeItem.IsActive;
      //                  equipmentTypeUpdate.EquipmentTypeRu = equipmentTypeItem.EquipmentTypeRu;
      //                  equipmentTypeUpdate.EquipmentTypeEn = equipmentTypeItem.EquipmentTypeEn;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление типа оборудовнаия
      //      /// </summary>
      //      /// <param name="equipmentTypeItem">тип оборудования</param>
      //      public static void EquipmentTypesInsert(EquipmentTypes equipmentTypeItem)
      //      {
      //          Entities.EquipmentTypes.Add(equipmentTypeItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление типа оборудования
      //      /// </summary>
      //      /// <param name="equipmentTypeItem">тип оборудования</param>
      //      public static void EquipmentTypesDelete(EquipmentTypes equipmentTypeItem)
      //      {
      //          if (equipmentTypeItem != null)
      //          {
      //              EquipmentTypes equipmentTypekDel = GetEquipmentTypebyId(equipmentTypeItem.IdEquipmentType);
      //              if (equipmentTypekDel != null)
      //              {
      //                  Entities.EquipmentTypes.Remove(equipmentTypekDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region CustomerClassificationsProfine

      //  /// <summary>
      //  /// Список классификаций по роду деятельности
      //  /// </summary>
      //  public static List<CustomerClassificationsProfine> CustomerClassificationsProfine
      //  {
      //      get { return Entities.CustomerClassificationsProfine.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные классификации по роду деятельности
      //  /// </summary>
      //  public static IEnumerable<CustomerClassificationsProfine> CustomerClassificationsProfineActive
      //  {
      //      get
      //      {
      //          return
      //              CustomerClassificationsProfine.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedCustomerClassificationsProfineNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (CustomerClassificationsProfine item in CustomerClassificationsProfine)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdCustomerClassificationsProfine;
      //          listItem.ParentCollection = CustomerClassificationsProfine;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить классификацию по роду деятельности по Id
      //  /// </summary>
      //  /// <param name="idCustomerClassificationsProfine">Id классификации по роду деятельности</param>
      //  /// <returns>классификация по роду деятельности</returns>
      //  public static CustomerClassificationsProfine GetCustomerClassificationsProfinebyId(
      //      int idCustomerClassificationsProfine)
      //  {
      //      return CustomerClassificationsProfine.FirstOrDefault(p=>p.IdCustomerClassificationsProfine==idCustomerClassificationsProfine);
      //  }

      //  /// <summary>
      //  /// Обновление классификации по роду деятельности
      //  /// </summary>
      //  /// <param name="customerClassificationsProfineItem">классификация по роду деятельности</param>
      //  public static void CustomerClassificationsProfineUpdate(
      //      CustomerClassificationsProfine customerClassificationsProfineItem)
      //  {
      //      if (customerClassificationsProfineItem != null)
      //      {
      //          CustomerClassificationsProfine customerClassificationsProfineUpdate =
      //              GetCustomerClassificationsProfinebyId(
      //                  customerClassificationsProfineItem.IdCustomerClassificationsProfine);
      //          if (customerClassificationsProfineUpdate != null)
      //          {
      //              customerClassificationsProfineUpdate.IsActive = customerClassificationsProfineItem.IsActive;
      //              customerClassificationsProfineUpdate.NameEn = customerClassificationsProfineItem.NameEn;
      //              customerClassificationsProfineUpdate.NameRu = customerClassificationsProfineItem.NameRu;
      //              customerClassificationsProfineUpdate.DescriptionEn =
      //                  customerClassificationsProfineItem.DescriptionEn;
      //              customerClassificationsProfineUpdate.DescriptionRu =
      //                  customerClassificationsProfineItem.DescriptionRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление классификации по роду деятельности
      //  /// </summary>
      //  /// <param name="customerClassificationsProfineItem">классификация по роду деятельности</param>
      //  public static void CustomerClassificationsProfineInsert(
      //      CustomerClassificationsProfine customerClassificationsProfineItem)
      //  {
      //      Entities.CustomerClassificationsProfine.Add(customerClassificationsProfineItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление классификации по роду деятельности
      //  /// </summary>
      //  /// <param name="customerClassificationsProfineItem">классификация по роду деятельности</param>
      //  public static void CustomerClassificationsProfineDelete(
      //      CustomerClassificationsProfine customerClassificationsProfineItem)
      //  {
      //      if (customerClassificationsProfineItem != null)
      //      {
      //          CustomerClassificationsProfine customerClassificationsProfineDel =
      //              GetCustomerClassificationsProfinebyId(
      //                  customerClassificationsProfineItem.IdCustomerClassificationsProfine);
      //          if (customerClassificationsProfineDel != null)
      //          {
      //              Entities.CustomerClassificationsProfine.Remove(customerClassificationsProfineDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CustomerClassificationsTurnover

      //  /// <summary>
      //  /// Список классификаций по оборотам
      //  /// </summary>
      //  public static List<CustomerClassificationsTurnover> CustomerClassificationsTurnover
      //  {
      //      get { return Entities.CustomerClassificationsTurnover.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные классификации по оборотам
      //  /// </summary>
      //  public static IEnumerable<CustomerClassificationsTurnover> CustomerClassificationsTurnoverActive
      //  {
      //      get
      //      {
      //          return
      //              CustomerClassificationsTurnover.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedCustomerClassificationsTurnoverNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (CustomerClassificationsTurnover item in CustomerClassificationsTurnover)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdCustomerClassificationsTurnover;
      //          listItem.ParentCollection = CustomerClassificationsTurnover;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить классификацию по оборотам по Id
      //  /// </summary>
      //  /// <param name="idCustomerClassificationsTurnover">Id классификации по оборотам</param>
      //  /// <returns>целевая аудитория</returns>
      //  public static CustomerClassificationsTurnover GetCustomerClassificationsTurnoverbyId(
      //      int idCustomerClassificationsTurnover)
      //  {
            

      //      return
      //          CustomerClassificationsTurnover.FirstOrDefault(
      //              p => p.IdCustomerClassificationsTurnover == idCustomerClassificationsTurnover);
      //  }

      //  /// <summary>
      //  /// Обновление классификации по оборотам
      //  /// </summary>
      //  /// <param name="customerClassificationsTurnoverItem">классификация по оборотам</param>
      //  public static void CustomerClassificationsTurnoverUpdate(
      //      CustomerClassificationsTurnover customerClassificationsTurnoverItem)
      //  {
      //      if (customerClassificationsTurnoverItem != null)
      //      {
      //          CustomerClassificationsTurnover customerClassificationsTurnoverUpdate =
      //              GetCustomerClassificationsTurnoverbyId(
      //                  customerClassificationsTurnoverItem.IdCustomerClassificationsTurnover);
      //          if (customerClassificationsTurnoverUpdate != null)
      //          {
      //              customerClassificationsTurnoverUpdate.IsActive = customerClassificationsTurnoverItem.IsActive;
      //              customerClassificationsTurnoverUpdate.NameEn = customerClassificationsTurnoverItem.NameEn;
      //              customerClassificationsTurnoverUpdate.NameRu = customerClassificationsTurnoverItem.NameRu;
      //              customerClassificationsTurnoverUpdate.DescriptionEn = customerClassificationsTurnoverItem.DescriptionEn;
      //              customerClassificationsTurnoverUpdate.DescriptionRu = customerClassificationsTurnoverItem.DescriptionRu;
                    

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление классификации по оборотам
      //  /// </summary>
      //  /// <param name="customerClassificationsTurnoverItem">классификация по оборотам</param>
      //  public static void CustomerClassificationsTurnoverInsert(
      //      CustomerClassificationsTurnover customerClassificationsTurnoverItem)
      //  {
      //      Entities.CustomerClassificationsTurnover.Add(customerClassificationsTurnoverItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление классификации по оборотам
      //  /// </summary>
      //  /// <param name="customerClassificationsTurnoverItem">классификация по оборотам</param>
      //  public static void CustomerClassificationsTurnoverDelete(
      //      CustomerClassificationsTurnover customerClassificationsTurnoverItem)
      //  {
      //      if (customerClassificationsTurnoverItem != null)
      //      {
      //          CustomerClassificationsTurnover customerClassificationsTurnoverDel =
      //              GetCustomerClassificationsTurnoverbyId(
      //                  customerClassificationsTurnoverItem.IdCustomerClassificationsTurnover);
      //          if (customerClassificationsTurnoverDel != null)
      //          {
      //              Entities.CustomerClassificationsTurnover.Remove(customerClassificationsTurnoverDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CustomerClassificationsByBusiness

      //  /// <summary>
      //  /// Список классификаций по роду деятельности
      //  /// </summary>
      //  public static List<CustomerClassificationsByBusiness> CustomerClassificationsByBusiness
      //  {
      //      get { return Entities.CustomerClassificationsByBusiness.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные классификации по роду деятельности
      //  /// </summary>
      //  public static IEnumerable<CustomerClassificationsByBusiness> CustomerClassificationsByBusinessActive
      //  {
      //      get
      //      {
      //          return
      //              CustomerClassificationsByBusiness.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedCustomerClassificationsByBusinessNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (CustomerClassificationsByBusiness item in CustomerClassificationsByBusiness)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdCustomerClassificationsByBusiness;
      //          listItem.ParentCollection = CustomerClassificationsByBusiness;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить классификацию по роду деятельности по Id
      //  /// </summary>
      //  /// <param name="idCustomerClassificationsByBusiness">Id классификации по роду деятельности</param>
      //  /// <returns>заявка на обучение</returns>
      //  public static CustomerClassificationsByBusiness GetCustomerClassificationsByBusinessbyId(
      //      int idCustomerClassificationsByBusiness)
      //  {
      //      return
      //          CustomerClassificationsByBusiness.FirstOrDefault(
      //              p => p.IdCustomerClassificationsByBusiness == idCustomerClassificationsByBusiness);
      //  }

      //  /// <summary>
      //  /// Обновление классификации по роду деятельности
      //  /// </summary>
      //  /// <param name="customerClassificationsByBusinessItem">классификация по роду деятельности</param>
      //  public static void CustomerClassificationsByBusinessUpdate(
      //      CustomerClassificationsByBusiness customerClassificationsByBusinessItem)
      //  {
      //      if (customerClassificationsByBusinessItem != null)
      //      {
      //          CustomerClassificationsByBusiness customerClassificationsByBusinessUpdate =
      //              GetCustomerClassificationsByBusinessbyId(
      //                  customerClassificationsByBusinessItem.IdCustomerClassificationsByBusiness);
      //          if (customerClassificationsByBusinessUpdate != null)
      //          {
      //              customerClassificationsByBusinessUpdate.IsActive = customerClassificationsByBusinessItem.IsActive;
      //              customerClassificationsByBusinessUpdate.NameEn = customerClassificationsByBusinessItem.NameEn;
      //              customerClassificationsByBusinessUpdate.NameRu = customerClassificationsByBusinessItem.NameRu;
      //              customerClassificationsByBusinessUpdate.DescriptionEn =
      //                  customerClassificationsByBusinessItem.DescriptionEn;
      //              customerClassificationsByBusinessUpdate.DescriptionRu =
      //                  customerClassificationsByBusinessItem.DescriptionRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление классификации по роду деятельности
      //  /// </summary>
      //  /// <param name="customerClassificationsByBusinessItem">классификация по роду деятельности</param>
      //  public static void CustomerClassificationsByBusinessInsert(
      //      CustomerClassificationsByBusiness customerClassificationsByBusinessItem)
      //  {
      //      Entities.CustomerClassificationsByBusiness.Add(customerClassificationsByBusinessItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление классификации по роду деятельности
      //  /// </summary>
      //  /// <param name="customerClassificationsByBusinessItem">классификация по роду деятельности</param>
      //  public static void CustomerClassificationsByBusinessDelete(
      //      CustomerClassificationsByBusiness customerClassificationsByBusinessItem)
      //  {
      //      if (customerClassificationsByBusinessItem != null)
      //      {
      //          CustomerClassificationsByBusiness customerClassificationsByBusinessDel =
      //              GetCustomerClassificationsByBusinessbyId(
      //                  customerClassificationsByBusinessItem.IdCustomerClassificationsByBusiness);
      //          if (customerClassificationsByBusinessDel != null)
      //          {
      //              Entities.CustomerClassificationsByBusiness.Remove(customerClassificationsByBusinessDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ActivitiesDirections

      //  /// <summary>
      //  /// Список направлений
      //  /// </summary>
      //  public static List<ActivitiesDirections> ActivitiesDirections
      //  {
      //      get { return Entities.ActivitiesDirections.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные направления
      //  /// </summary>
      //  public static IEnumerable<ActivitiesDirections> ActivitiesDirectionsActive
      //  {
      //      get
      //      {
      //          return
      //              ActivitiesDirections.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedActivitiesDirectionsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (ActivitiesDirections item in ActivitiesDirections)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdActivitiesDirection;
      //          listItem.ParentCollection = ActivitiesDirections;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить направление по Id
      //  /// </summary>
      //  /// <param name="idActivitiesDirection">Id направления</param>
      //  /// <returns>заявка на обучение</returns>
      //  public static ActivitiesDirections GetActivitiesDirectionbyId(int idActivitiesDirection)
      //  {
      //      ActivitiesDirections _result = null;
      //      foreach (ActivitiesDirections activitiesDirection in ActivitiesDirections)
      //      {
      //          if (activitiesDirection.IdActivitiesDirection == idActivitiesDirection)
      //          {
      //              _result = activitiesDirection;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление направления
      //  /// </summary>
      //  /// <param name="activitiesDirectionItem">направление</param>
      //  public static void ActivitiesDirectionsUpdate(ActivitiesDirections activitiesDirectionItem)
      //  {
      //      if (activitiesDirectionItem != null)
      //      {
      //          ActivitiesDirections activitiesDirectionUpdate =
      //              GetActivitiesDirectionbyId(activitiesDirectionItem.IdActivitiesDirection);
      //          if (activitiesDirectionUpdate != null)
      //          {
      //              activitiesDirectionUpdate.IsActive = activitiesDirectionItem.IsActive;
      //              activitiesDirectionUpdate.NameEn = activitiesDirectionItem.NameEn;
      //              activitiesDirectionUpdate.NameRu = activitiesDirectionItem.NameRu;
      //              activitiesDirectionUpdate.DescriptionEn = activitiesDirectionItem.DescriptionEn;
      //              activitiesDirectionUpdate.DescriptionRu = activitiesDirectionItem.DescriptionRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление направления
      //  /// </summary>
      //  /// <param name="activitiesDirectionItem">направление</param>
      //  public static void ActivitiesDirectionsInsert(ActivitiesDirections activitiesDirectionItem)
      //  {
      //      Entities.ActivitiesDirections.Add(activitiesDirectionItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление направления
      //  /// </summary>
      //  /// <param name="activitiesDirectionItem">направление</param>
      //  public static void ActivitiesDirectionsDelete(ActivitiesDirections activitiesDirectionItem)
      //  {
      //      if (activitiesDirectionItem != null)
      //      {
      //          ActivitiesDirections activitiesDirectionDel =
      //              GetActivitiesDirectionbyId(activitiesDirectionItem.IdActivitiesDirection);
      //          if (activitiesDirectionDel != null)
      //          {
      //              Entities.ActivitiesDirections.Remove(activitiesDirectionDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ActivitiesCategories

      //  /// <summary>
      //  /// Список категорий
      //  /// </summary>
      //  public static List<ActivitiesCategories> ActivitiesCategories
      //  {
      //      get { return Entities.ActivitiesCategories.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные категории
      //  /// </summary>
      //  public static IEnumerable<ActivitiesCategories> ActivitiesCategoriesActive
      //  {
      //      get
      //      {
      //          return
      //              ActivitiesCategories.Where(p => p.IsActive == true);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedActivitiesCategoriesNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (ActivitiesCategories item in ActivitiesCategories)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdActivitiesCategory;
      //          listItem.ParentCollection = ActivitiesCategories;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.NameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.NameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить категорию по Id
      //  /// </summary>
      //  /// <param name="idActivitiesCategory">Id статуса заявки на обучение</param>
      //  /// <returns>заявка на обучение</returns>
      //  public static ActivitiesCategories GetActivitiesCategorybyId(int idActivitiesCategory)
      //  {
      //      ActivitiesCategories _result = null;
      //      foreach (ActivitiesCategories activitiesCategory in ActivitiesCategories)
      //      {
      //          if (activitiesCategory.IdActivitiesCategory == idActivitiesCategory)
      //          {
      //              _result = activitiesCategory;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление категории
      //  /// </summary>
      //  /// <param name="activitiesCategoryItem">категория</param>
      //  public static void ActivitiesCategoriesUpdate(ActivitiesCategories activitiesCategoryItem)
      //  {
      //      if (activitiesCategoryItem != null)
      //      {
      //          ActivitiesCategories activitiesCategoryUpdate =
      //              GetActivitiesCategorybyId(activitiesCategoryItem.IdActivitiesCategory);
      //          if (activitiesCategoryUpdate != null)
      //          {
      //              activitiesCategoryUpdate.IsActive = activitiesCategoryItem.IsActive;
      //              activitiesCategoryUpdate.NameEn = activitiesCategoryItem.NameEn;
      //              activitiesCategoryUpdate.NameRu = activitiesCategoryItem.NameRu;
      //              activitiesCategoryUpdate.DescriptionEn = activitiesCategoryItem.DescriptionEn;
      //              activitiesCategoryUpdate.DescriptionRu = activitiesCategoryItem.DescriptionRu;
      //              activitiesCategoryUpdate.IdActivitiesDirection = activitiesCategoryItem.IdActivitiesDirection;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление категории
      //  /// </summary>
      //  /// <param name="activitiesCategoryItem">категория</param>
      //  public static void ActivitiesCategoriesInsert(ActivitiesCategories activitiesCategoryItem)
      //  {
      //      Entities.ActivitiesCategories.Add(activitiesCategoryItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление категории
      //  /// </summary>
      //  /// <param name="activitiesCategoryItem">категория</param>
      //  public static void ActivitiesCategoriesDelete(ActivitiesCategories activitiesCategoryItem)
      //  {
      //      if (activitiesCategoryItem != null)
      //      {
      //          ActivitiesCategories activitiesCategoryDel =
      //              GetActivitiesCategorybyId(activitiesCategoryItem.IdActivitiesCategory);
      //          if (activitiesCategoryDel != null)
      //          {
      //              Entities.ActivitiesCategories.Remove(activitiesCategoryDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CustomerCategories

      //  /// <summary>
      //  /// Список категорий клиентов
      //  /// </summary>
      //  public static List<CustomerCategories> CustomerCategories
      //  {
      //      get { return Entities.CustomerCategories.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные категории клиентов
      //  /// </summary>
      //  public static IEnumerable<CustomerCategories> CustomerCategoriesActive
      //  {
      //      get
      //      {
      //          return
      //              CustomerCategories.Where(p => p.IsActive == true);
      //      }
      //  }

      //  /// <summary>
      //  /// Получить категорию клиента по Id
      //  /// </summary>
      //  /// <param name="idCustomerCategory">Id категории клиента</param>
      //  /// <returns>категория клиента</returns>
      //  public static CustomerCategories GetCustomerCategorybyId(int idCustomerCategory)
      //  {
      //      CustomerCategories _result = null;
      //      foreach (CustomerCategories customerCategory in CustomerCategories)
      //      {
      //          if (customerCategory.IdCustomerCategory == idCustomerCategory)
      //          {
      //              _result = customerCategory;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление категории клиента
      //  /// </summary>
      //  /// <param name="customerCategoryItem">категория клиента</param>
      //  public static void CustomerCategoriesUpdate(CustomerCategories customerCategoryItem)
      //  {
      //      if (customerCategoryItem != null)
      //      {
      //          CustomerCategories customerCategoryUpdate =
      //              GetCustomerCategorybyId(customerCategoryItem.IdCustomerCategory);
      //          if (customerCategoryUpdate != null)
      //          {
      //              customerCategoryUpdate.IsActive = customerCategoryItem.IsActive;
      //              customerCategoryUpdate.Category = customerCategoryItem.Category;
      //              customerCategoryUpdate.DescriptionEn = customerCategoryItem.DescriptionEn;
      //              customerCategoryUpdate.DescriptionRu = customerCategoryItem.DescriptionRu;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление категории клиента
      //  /// </summary>
      //  /// <param name="customerCategoryItem">категория клиента</param>
      //  public static void CustomerCategoriesInsert(CustomerCategories customerCategoryItem)
      //  {
      //      Entities.CustomerCategories.Add(customerCategoryItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление категории клиента
      //  /// </summary>
      //  /// <param name="customerCategoryItem">категория клиента</param>
      //  public static void CustomerCategoriesDelete(CustomerCategories customerCategoryItem)
      //  {
      //      if (customerCategoryItem != null)
      //      {
      //          CustomerCategories customerCategoryDel = GetCustomerCategorybyId(customerCategoryItem.IdCustomerCategory);
      //          if (customerCategoryDel != null)
      //          {
      //              Entities.CustomerCategories.Remove(customerCategoryDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion
        
      //  #region Roles

      //  /// <summary>
      //  /// Список ролей
      //  /// </summary>
      //  public static List<Roles> Roles
      //  {
      //      get { return Entities.Roles.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные роли
      //  /// </summary>
      //  public static IEnumerable<Roles> RolesActive
      //  {
      //      get
      //      {
      //          return
      //              Roles.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedRolesNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (Roles item in Roles)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdRole;
      //          listItem.ParentCollection = Roles;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.RoleNameRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.RoleNameEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить роль по Id
      //  /// </summary>
      //  /// <param name="idRole">Id роли</param>
      //  /// <returns>роль</returns>
      //  public static Roles GetRolebyId(int idRole)
      //  {
      //      Roles _result = null;
      //      foreach (Roles role in Roles)
      //      {
      //          if (role.IdRole == idRole)
      //          {
      //              _result = role;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление роли
      //  /// </summary>
      //  /// <param name="roleItem">роль</param>
      //  public static void RolesUpdate(Roles roleItem)
      //  {
      //      if (roleItem != null)
      //      {
      //          Roles roleUpdate = GetRolebyId(roleItem.IdRole);
      //          if (roleUpdate != null)
      //          {
      //              roleUpdate.IsActive = roleItem.IsActive;
      //              roleUpdate.IdProfineRegion = roleItem.IdProfineRegion;
      //              roleUpdate.RoleNameRu = roleItem.RoleNameRu;
      //              roleUpdate.RoleNameEn = roleItem.RoleNameEn;
      //              roleUpdate.IdRolesType = roleItem.IdRolesType;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление роли
      //  /// </summary>
      //  /// <param name="roleItem">роль</param>
      //  public static void RolesInsert(Roles roleItem)
      //  {
      //      Entities.Roles.Add(roleItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление роли
      //  /// </summary>
      //  /// <param name="roleItem">рольа</param>
      //  public static void RolesDelete(Roles roleItem)
      //  {
      //      if (roleItem != null)
      //      {
      //          Roles roleDel = GetRolebyId(roleItem.IdRole);
      //          if (roleDel != null)
      //          {
      //              Entities.Roles.Remove(roleDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region GlassUnitMarks - moved but not commented

      //      /// <summary>
      //      /// Список стеклопакетов
      //      /// </summary>
      //      public static List<GlassUnitMarks> GlassUnitMarks
      //      {
      //          get { return Entities.GlassUnitMarks.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные стеклопакеты
      //      /// </summary>
      //      public static IEnumerable<GlassUnitMarks> GlassUnitMarksActive
      //      {
      //          get
      //          {
      //              return
      //                  GlassUnitMarks.Where(p => p.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получить стеклопакет по Id
      //      /// </summary>
      //      /// <param name="idGlassUnitMark">Id стеклопакета</param>
      //      /// <returns>стеклопакет</returns>
      //      public static GlassUnitMarks GetGlassUnitMarkbyId(int idGlassUnitMark)
      //      {
      //          GlassUnitMarks _result = null;
      //          foreach (GlassUnitMarks glassUnitMark in GlassUnitMarks)
      //          {
      //              if (glassUnitMark.IdGlassUnitMark == idGlassUnitMark)
      //              {
      //                  _result = glassUnitMark;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление стеклопакета
      //      /// </summary>
      //      /// <param name="glassUnitMarkItem">стеклопакет</param>
      //      public static void GlassUnitMarksUpdate(GlassUnitMarks glassUnitMarkItem)
      //      {
      //          if (glassUnitMarkItem != null)
      //          {
      //              GlassUnitMarks glassUnitMarkUpdate = GetGlassUnitMarkbyId(glassUnitMarkItem.IdGlassUnitMark);
      //              if (glassUnitMarkUpdate != null)
      //              {
      //                  glassUnitMarkUpdate.IsActive = glassUnitMarkItem.IsActive;
      //                  glassUnitMarkUpdate.GlassUnitMark = glassUnitMarkItem.GlassUnitMark;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление стеклопакета
      //      /// </summary>
      //      /// <param name="glassUnitMarkItem">стеклопакет</param>
      //      public static void GlassUnitMarksInsert(GlassUnitMarks glassUnitMarkItem)
      //      {
      //          Entities.GlassUnitMarks.Add(glassUnitMarkItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление стеклопакета
      //      /// </summary>
      //      /// <param name="glassUnitMarkItem">стеклопакет</param>
      //      public static void GlassUnitMarksDelete(GlassUnitMarks glassUnitMarkItem)
      //      {
      //          if (glassUnitMarkItem != null)
      //          {
      //              GlassUnitMarks glassUnitMarkDel = GetGlassUnitMarkbyId(glassUnitMarkItem.IdGlassUnitMark);
      //              if (glassUnitMarkDel != null)
      //              {
      //                  Entities.GlassUnitMarks.Remove(glassUnitMarkDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region FurnitureMarks - moved but not commented

      //      /// <summary>
      //      /// Список форнитур
      //      /// </summary>
      //      public static List<FurnitureMarks> FurnitureMarks
      //      {
      //          get { return Entities.FurnitureMarks.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные форнитуры
      //      /// </summary>
      //      public static IEnumerable<FurnitureMarks> FurnitureMarksActive
      //      {
      //          get
      //          {
      //              return
      //                  FurnitureMarks.Where(p => p.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получить форнитуру по Id
      //      /// </summary>
      //      /// <param name="idFurnitureMark">Id форнитуры</param>
      //      /// <returns>форнитура</returns>
      //      public static FurnitureMarks GetFurnitureMarkbyId(int idFurnitureMark)
      //      {
      //          FurnitureMarks _result = null;
      //          foreach (FurnitureMarks furnitureMark in FurnitureMarks)
      //          {
      //              if (furnitureMark.IdFurnitureMark == idFurnitureMark)
      //              {
      //                  _result = furnitureMark;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление форнитуры
      //      /// </summary>
      //      /// <param name="furnitureMarkItem">форнитура</param>
      //      public static void FurnitureMarksUpdate(FurnitureMarks furnitureMarkItem)
      //      {
      //          if (furnitureMarkItem != null)
      //          {
      //              FurnitureMarks furnitureMarkUpdate = GetFurnitureMarkbyId(furnitureMarkItem.IdFurnitureMark);
      //              if (furnitureMarkUpdate != null)
      //              {
      //                  furnitureMarkUpdate.IsActive = furnitureMarkItem.IsActive;
      //                  furnitureMarkUpdate.FurnitureMark = furnitureMarkItem.FurnitureMark;

      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление форнитуры
      //      /// </summary>
      //      /// <param name="furnitureMarkItem">форнитура</param>
      //      public static void FurnitureMarksInsert(FurnitureMarks furnitureMarkItem)
      //      {
      //          Entities.FurnitureMarks.Add(furnitureMarkItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление форнитуры
      //      /// </summary>
      //      /// <param name="furnitureMarkItem">форнитура</param>
      //      public static void FurnitureMarksDelete(FurnitureMarks furnitureMarkItem)
      //      {
      //          if (furnitureMarkItem != null)
      //          {
      //              FurnitureMarks furnitureMarkDel = GetFurnitureMarkbyId(furnitureMarkItem.IdFurnitureMark);
      //              if (furnitureMarkDel != null)
      //              {
      //                  Entities.FurnitureMarks.Remove(furnitureMarkDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region Vendors - moved but not commented

      //      /// <summary>
      //      /// Получение локализованного списка значений
      //      /// </summary>
      //      /// <param name="culture"></param>
      //      /// <returns></returns>
      //      public static List<LocalizedListItem> GetLocalizedToolsVendors(string culture)
      //      {
      //          return null;
      //      }

      //      /// <summary>
      //      /// Список производителей
      //      /// </summary>
      //      public static List<Vendors> Vendors
      //      {
      //          get { return Entities.Vendors.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные производители
      //      /// </summary>
      //      public static IEnumerable<Vendors> VendorsActive
      //      {
      //          get
      //          {
      //              return
      //                  Vendors.Where(p => p.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получить производителя по Id
      //      /// </summary>
      //      /// <param name="idVendor">Id производителя</param>
      //      /// <returns>производитель</returns>
      //      public static Vendors GetVendorbyId(int idVendor)
      //      {
      //          Vendors _result = null;
      //          foreach (Vendors vendor in Vendors)
      //          {
      //              if (vendor.IdVendor == idVendor)
      //              {
      //                  _result = vendor;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }
            
      //      /// <summary>
      //      /// 
      //      /// </summary>
      //      /// <param name="vendorTypeId"></param>
      //      /// <returns></returns>
      //      public static List<Vendors> GetVendorsByVendorsTypeId(int vendorTypeId)
      //      {
      //          List<Vendors> result = null;

      //          foreach (Vendors vendor in Vendors)
      //          {
      //              foreach (VendorsVendorsTypes VendorType in vendor.VendorsVendorsTypes)
      //              {
      //                  if (VendorType.IdVendorsType == vendorTypeId)
      //                  {
      //                      if (result == null)
      //                          result = new List<Vendors>();
      //                      if (!result.Contains(vendor)) result.Add(vendor);
      //                      break;
      //                  }
      //              }
      //          }
      //          return result;
      //      }

      //      /// <summary>
      //      /// Обновление производителя
      //      /// </summary>
      //      /// <param name="vendorItem">производитель</param>
      //      public static void VendorsUpdate(Vendors vendorItem)
      //      {
      //          if (vendorItem != null)
      //          {
      //              Vendors vendorUpdate = GetVendorbyId(vendorItem.IdVendor);
      //              if (vendorUpdate != null)
      //              {
      //                  vendorUpdate.IsActive = vendorItem.IsActive;
      //                  vendorUpdate.VendorName = vendorItem.VendorName;
      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление производителя
      //      /// </summary>
      //      /// <param name="vendorItem">производитель</param>
      //      public static void VendorsInsert(Vendors vendorItem)
      //      {
      //          Entities.Vendors.Add(vendorItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление производителя
      //      /// </summary>
      //      /// <param name="vendorItem">производитель</param>
      //      public static void VendorsDelete(Vendors vendorItem)
      //      {
      //          if (vendorItem != null)
      //          {
      //              Vendors vendorDel = GetVendorbyId(vendorItem.IdVendor);
      //              if (vendorDel != null)
      //              {
      //                  Entities.Vendors.Remove(vendorDel);
      //                  DB.Save();
      //              }
      //          }
      //      }
        
      //      /// <summary>
      //      /// Производители оборудования
      //      /// </summary>
      //      public static List<Vendors> EquipmentVendors
      //      {
      //          get 
      //          { 
      //              List<Vendors> result = new List<Vendors>();
      //              foreach(var item in VendorsActive)
      //              {
      //                  foreach(var type in item.VendorsVendorsTypes)
      //                  {
      //                      if(type.IdVendorsType==4)
      //                      {
      //                          result.Add(item);
      //                      }
      //                  }
      //              }
      //              return result;
      //          }
      //      } 

      //  #endregion

      //  #region VendorsTypes - moved but not commented

      //      /// <summary>
      //      /// Список типов производителей
      //      /// </summary>
      //      public static List<VendorsTypes> VendorsTypes
      //      {
      //          get { return Entities.VendorsTypes.ToList(); }
      //      }

      //      /// <summary>
      //      /// Активные типы производителей
      //      /// </summary>
      //      public static IEnumerable<VendorsTypes> VendorsTypesActive
      //      {
      //          get
      //          {
      //              return
      //                  VendorsTypes.Where(p => p.IsActive);
      //          }
      //      }

      //      /// <summary>
      //      /// Получение локализованного списка типов производителей
      //      /// </summary>
      //      /// <param name="culture"></param>
      //      /// <returns></returns>
      //      public static List<LocalizedListItem> GetLocalizedVendorsTypesNames(string culture)
      //      {
      //          List<LocalizedListItem> result = null;
      //          foreach (VendorsTypes item in VendorsTypes)
      //          {
      //              if (result == null) result = new List<LocalizedListItem>();
      //              var listItem = new LocalizedListItem();
      //              listItem.Id = item.IdVendorsType;
      //              listItem.ParentCollection = VendorsTypes;
      //              if (culture.Contains("ru"))
      //              {
      //                  listItem.LocaLizedString = item.VendorsTypeNameRu;
      //              }
      //              else
      //              {
      //                  listItem.LocaLizedString = item.VendorsTypeNameEn;
      //              }
      //              result.Add(listItem);
      //          }
      //          return result;
      //      }

      //      /// <summary>
      //      /// Получить тип производителя по Id
      //      /// </summary>
      //      /// <param name="idVendorsType">Id типа производителя</param>
      //      /// <returns>тип производителя</returns>
      //      public static VendorsTypes GetVendorsTypebyId(int idVendorsType)
      //      {
      //          VendorsTypes _result = null;
      //          foreach (VendorsTypes vendorsType in VendorsTypes)
      //          {
      //              if (vendorsType.IdVendorsType == idVendorsType)
      //              {
      //                  _result = vendorsType;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление типа производителя
      //      /// </summary>
      //      /// <param name="vendorsTypeItem">тип производителя</param>
      //      public static void VendorsTypesUpdate(VendorsTypes vendorsTypeItem)
      //      {
      //          if (vendorsTypeItem != null)
      //          {
      //              VendorsTypes vendorsTypeUpdate = GetVendorsTypebyId(vendorsTypeItem.IdVendorsType);
      //              if (vendorsTypeUpdate != null)
      //              {
      //                  vendorsTypeUpdate.IsActive = vendorsTypeItem.IsActive;
      //                  vendorsTypeUpdate.VendorsTypeNameEn = vendorsTypeItem.VendorsTypeNameEn;
      //                  vendorsTypeUpdate.VendorsTypeNameRu = vendorsTypeItem.VendorsTypeNameRu;
      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление типа производителя
      //      /// </summary>
      //      /// <param name="vendorsTypeItem">тип производителя</param>
      //      public static void VendorsTypesInsert(VendorsTypes vendorsTypeItem)
      //      {
      //          Entities.VendorsTypes.Add(vendorsTypeItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление типа производителя
      //      /// </summary>
      //      /// <param name="vendorsTypeItem">тип производителя</param>
      //      public static void VendorsTypesDelete(VendorsTypes vendorsTypeItem)
      //      {
      //          if (vendorsTypeItem != null)
      //          {
      //              VendorsTypes vendorsTypeDel = GetVendorsTypebyId(vendorsTypeItem.IdVendorsType);
      //              if (vendorsTypeDel != null)
      //              {
      //                  Entities.VendorsTypes.Remove(vendorsTypeDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //  #endregion

      //  #region EquipmentTypesVendorsTypes

      //  /// <summary>
      //  /// Список типов производителей
      //  /// </summary>
      //  public static List<EquipmentTypesVendorTypes> EquipmentTypesVendorTypes
      //  {
      //      get { return Entities.EquipmentTypesVendorTypes.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные типы производителей
      //  /// </summary>
      //  public static IEnumerable<EquipmentTypesVendorTypes> EquipmentTypesVendorTypesActive
      //  {
      //      get
      //      {
      //          return
      //              EquipmentTypesVendorTypes.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Поиск связки по идентификатору
      //  /// </summary>
      //  /// <param name="id">Идентификатор</param>
      //  /// <returns>Связка</returns>
      //  public static EquipmentTypesVendorTypes GetEquipmentTypesVendorTypesById(int id)
      //  {
      //      return EquipmentTypesVendorTypes.SingleOrDefault(p => p.IdEquipmentTypesVendorsTypes == id);
      //  }

      //  /// <summary>
      //  /// Обновление типа производителя
      //  /// </summary>
      //  public static void EquipmentTypesVendorTypesUpdate(EquipmentTypesVendorTypes equipmentTypesVendorTypesItem)
      //  {
      //      if (equipmentTypesVendorTypesItem != null)
      //      {
      //          EquipmentTypesVendorTypes vendorsTypeUpdate = GetEquipmentTypesVendorTypesById(equipmentTypesVendorTypesItem.IdEquipmentTypesVendorsTypes);
      //          if (vendorsTypeUpdate != null)
      //          {
      //              vendorsTypeUpdate.IsActive = equipmentTypesVendorTypesItem.IsActive;
      //              vendorsTypeUpdate.IdEquipmentType = equipmentTypesVendorTypesItem.IdEquipmentType;
      //              vendorsTypeUpdate.IdVendorType = equipmentTypesVendorTypesItem.IdVendorType;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление типа производителя
      //  /// </summary>
      //  /// <param name="vendorsTypeItem">тип производителя</param>
      //  public static void EquipmentTypesVendorTypesInsert(EquipmentTypesVendorTypes vendorsTypeItem)
      //  {
      //      Entities.EquipmentTypesVendorTypes.Add(vendorsTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление типа производителя
      //  /// </summary>
      //  /// <param name="vendorsTypeItem">тип производителя</param>
      //  public static void EquipmentTypesVendorTypesDelete(EquipmentTypesVendorTypes vendorsTypeItem)
      //  {
      //      if (vendorsTypeItem != null)
      //      {
      //          EquipmentTypesVendorTypes vendorsTypeDel = GetEquipmentTypesVendorTypesById(vendorsTypeItem.IdEquipmentTypesVendorsTypes);
      //          if (vendorsTypeDel != null)
      //          {
      //              Entities.EquipmentTypesVendorTypes.Remove(vendorsTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Turnovers


      ////  private static List<Turnovers> _turnovers; 

      //  ///// <summary>
      //  ///// Список оборотов
      //  ///// </summary>
      //  //public static List<Turnovers> Turnovers
      //  //{
      //  //    get
      //  //    {
      //  //        return Entities.Turnovers.ToList();
      //  //        //if (_turnovers == null)
      //  //        //{
      //  //        //    _turnovers = new List<Turnovers>();
      //  //        //}
      //  //        //return _turnovers;
      //  //    }
      //  //}

      //////  private static List<Turnovers> _trueTurnovers;

      ////  public static v_Turnovers GetV_TurnoverById(int id)
      ////  {
      ////      return Entities.v_Turnovers.FirstOrDefault(p => p.IdTurnover == id);
      ////  }


      //  //private static List<Turnovers> _trueTurnovers; 
      //  //public static List<Turnovers> TrueTurnovers
      //  //{
      //  //    get
      //  //    {
      //  //        if (_trueTurnovers == null)
      //  //        {
      //  //            _trueTurnovers = new List<Turnovers>();

      //  //            foreach (var turnover in Turnovers.Where(p => p.IdTurnoverClassification == 1))
      //  //            {
      //  //                _trueTurnovers.Add(turnover);
      //  //            }

      //  //            foreach (var turnover in Turnovers.Where(p => p.IdTurnoverClassification == 2))
      //  //            {
      //  //                _trueTurnovers.Add(turnover);
      //  //            }

      //  //            foreach (var turnover in Turnovers.Where(p => p.IdTurnoverClassification == 3))
      //  //            {
      //  //                if(turnover.ClientSequentalNumber!=9119)
      //  //                {
      //  //                    bool inDirectTurnoverOnSamePeriodExists = false;
      //  //                    foreach (var indirectTurnover in turnover.LegalEntities.Customers.Sales)
      //  //                    {
      //  //                        if (indirectTurnover.Month == turnover.Month)
      //  //                            if (indirectTurnover.Year == turnover.Year)
      //  //                            {
      //  //                                inDirectTurnoverOnSamePeriodExists = true;
      //  //                                break;
      //  //                            }
      //  //                    }

      //  //                    if (!inDirectTurnoverOnSamePeriodExists)
      //  //                    {
      //  //                        _trueTurnovers.Add(turnover);
      //  //                    }
      //  //                }
      //  //            }
      //  //        }

      //  //        return _trueTurnovers;

      //  //        //var      result = new List<TrueTurnover>();


      //  //        //       foreach(var customer in CustomersActive)
      //  //        //       {
      //  //        //           if (customer.SequentialNumber == 9008)
      //  //        //               break;

      //  //        //           if(customer.SequentialNumber==450)
      //  //        //           {

      //  //        //           }

      //  //        //           var indirect = customer.Sales;
      //  //        //           var production = customer.Turnovers.Where(p => p.IdTurnoverClassification == 2);
      //  //        //           var direct = customer.Turnovers.Where(p => p.IdTurnoverClassification == 3);

      //  //        //           foreach(var item in production)
      //  //        //           {

      //  //        //               //int iddealer = 0;
      //  //        //               //if (item.IdDealerLegalEntity != null)
      //  //        //               //{
      //  //        //               //     iddealer = (int) item.IdDealerLegalEntity;
      //  //        //               //}

      //  //        //               //int idle = 0;
      //  //        //               //if (item.IdLegalEntity != null)
      //  //        //               //{
      //  //        //               //    idle = (int)item.IdLegalEntity;
      //  //        //               //}

      //  //        //               //int idpr = 0;
      //  //        //               //if (item.IdProduct != null)
      //  //        //               //{
      //  //        //               //    idpr = (int)item.IdProduct;
      //  //        //               //}

      //  //        //               //int idtc = 0;
      //  //        //               //if (item.IdTurnoverClassification != null)
      //  //        //               //{
      //  //        //               //    idtc = (int)item.IdTurnoverClassification;
      //  //        //               //}

      //  //        //            //   result.Add(new TrueTurnover{Amount=item.Amount,IdDealerLegalEntity=iddealer,IdLegalEntity=idle,IdProduct=idpr,IdTurnoverClassification=idtc,Period=item.Period, IdTurnover=item.IdTurnover});
      //  //        //               if (item.IdTurnover == 117426)
      //  //        //               {

      //  //        //               }
      //  //        //               _trueTurnovers.Add(item);
      //  //        //           }

      //  //        //           foreach (var item in indirect)
      //  //        //           {

      //  //        //               int iddealer = 0;
      //  //        //               if (item.IdDealerLegalEntity != null)
      //  //        //               {
      //  //        //                   iddealer = (int)item.IdDealerLegalEntity;
      //  //        //               }

      //  //        //               int idle = 0;
      //  //        //               if (item.IdLegalEntity != null)
      //  //        //               {
      //  //        //                   idle = (int)item.IdLegalEntity;
      //  //        //               }

      //  //        //               int idpr = 0;
      //  //        //               if (item.IdProduct != null)
      //  //        //               {
      //  //        //                   idpr = (int)item.IdProduct;
      //  //        //               }

      //  //        //               int idtc = 0;
      //  //        //               if (item.IdTurnoverClassification != null)
      //  //        //               {
      //  //        //                   idtc = (int)item.IdTurnoverClassification;
      //  //        //               }

      //  //        //                if (item.IdTurnover == 117426)
      //  //        //               {

      //  //        //               }


      //  //        //               result.Add(new TrueTurnover { Amount = item.Amount, IdDealerLegalEntity = iddealer, IdLegalEntity = idle, IdProduct = idpr, IdTurnoverClassification = idtc, Period = item.Period, IdTurnover = item.IdTurnover });
      //  //        //               _trueTurnovers.Add(item);
      //  //        //           }

      //  //        //           foreach (var directItem in direct)
      //  //        //           {

      //  //        //               if (directItem.IdTurnover == 117426)
      //  //        //               {

      //  //        //               }


      //  //        //               bool exist = false;

      //  //        //               foreach (var indirectTurnover in result)
      //  //        //               {

      //  //        //                   if (indirectTurnover.IdTurnover == 117426)
      //  //        //                   {

      //  //        //                   }

      //  //        //                   if (indirectTurnover.Period.Month == directItem.Month && indirectTurnover.Period.Year == directItem.Period.Year)
      //  //        //                   {
      //  //        //                       exist = true;
      //  //        //                       break;
      //  //        //                   }
      //  //        //               }

      //  //        //              // if((indirect.Where(p=>p.Period.Month==item.Period.Month)).FirstOrDefault(c=>c.Period.Year==item.Period.Year)==null)
      //  //        //               if(!exist)
      //  //        //               { 
      //  //        //                   if(directItem.ClientSequentalNumber==450)
      //  //        //                   {

      //  //        //                   }
      //  //        //                   _trueTurnovers.Add(directItem);
      //  //        //                   //int iddealer = 0;
      //  //        //                   //if (item.IdDealerLegalEntity != null)
      //  //        //                   //{
      //  //        //                   //    iddealer = (int)item.IdDealerLegalEntity;
      //  //        //                   //}

      //  //        //                   //int idle = 0;
      //  //        //                   //if (item.IdLegalEntity != null)
      //  //        //                   //{
      //  //        //                   //    idle = (int)item.IdLegalEntity;
      //  //        //                   //}

      //  //        //                   //int idpr = 0;
      //  //        //                   //if (item.IdProduct != null)
      //  //        //                   //{
      //  //        //                   //    idpr = (int)item.IdProduct;
      //  //        //                   //}

      //  //        //                   //int idtc = 0;
      //  //        //                   //if (item.IdTurnoverClassification != null)
      //  //        //                   //{
      //  //        //                   //    idtc = (int)item.IdTurnoverClassification;
      //  //        //                   //}

      //  //        //                 //  result.Add(new TrueTurnover { Amount = item.Amount, IdDealerLegalEntity = iddealer, IdLegalEntity = idle, IdProduct = idpr, IdTurnoverClassification = idtc, Period = item.Period, IdTurnover = item.IdTurnover });

      //  //        //               }
      //  //        //           }
      //  //        //       }


      //  //        //       //foreach(var item in result)
      //  //        //       //{
      //  //        //       //    _trueTurnovers.Add(GetTurnoverbyId(item.IdTurnover));
      //  //        //       //}

      //  //        //   }

      //  //        //   return _trueTurnovers;

      //  //        //   //if (_trueTurnovers == null)
      //  //        //   //{
      //  //        //   //    var result = new List<Turnovers>();

      //  //        //   //    List<int> dialersIds=new List<int>();

      //  //        //   //    //foreach(var item in Turnovers)
      //  //        //   //    //{
      //  //        //   //    //    if(item.IdDealerLegalEntity != null && !dialersIds.Contains((int) item.IdDealerLegalEntity))
      //  //        //   //    //    {
      //  //        //   //    //        dialersIds.Add((int) item.IdDealerLegalEntity);
      //  //        //   //    //    }
      //  //        //   //    //}

      //  //        //   //    foreach (var item in Turnovers.Where(p => p.IdTurnoverClassification == 1))
      //  //        //   //        if (item.IdDealerLegalEntity != null && !dialersIds.Contains((int)item.IdDealerLegalEntity))
      //  //        //   //        {
      //  //        //   //            if (item.DealerLegalEntity != null) 
      //  //        //   //                dialersIds.Add(item.DealerLegalEntity.IdCustomer);
      //  //        //   //        }


      //  //        //   //    List<int> allDirectCustomers = new List<int>();

      //  //        //   //    foreach(var item in Turnovers.Where(p => p.IdTurnoverClassification == 3))
      //  //        //   //    {
      //  //        //   //       allDirectCustomers.Add(item.LegalEntities.IdCustomer);
      //  //        //   //    }

      //  //        //   //    List<int> directProduction = new List<int>();
      //  //        //   //    foreach(var item in allDirectCustomers)
      //  //        //   //    {
      //  //        //   //        if(!dialersIds.Contains(item))
      //  //        //   //        {
      //  //        //   //            directProduction.Add(item);
      //  //        //   //        }


      //  //        //   //    }

      //  //        //   //    directProduction.Add(GetCustomerBySequentalNumber(4307).IdCustomer);
      //  //        //   //    directProduction.Add(GetCustomerBySequentalNumber(422).IdCustomer);


      //  //        //   //    foreach(var turnover in Turnovers)
      //  //        //   //    {
      //  //        //   //        if(turnover.IdTurnoverClassification==1)
      //  //        //   //            result.Add(turnover);
      //  //        //   //        if(turnover.IdTurnoverClassification==2)
      //  //        //   //            result.Add(turnover);
      //  //        //   //        if(turnover.IdTurnoverClassification==4)
      //  //        //   //            result.Add(turnover);
      //  //        //   //        if(turnover.IdTurnoverClassification==3)
      //  //        //   //        {
      //  //        //   //            if(directProduction.Contains(turnover.LegalEntities.IdCustomer))
      //  //        //   //            {
      //  //        //   //                result.Add(turnover);
      //  //        //   //            }
      //  //        //   //        }
      //  //        //   //    }

      //  //        //   //    //foreach(var item in Turnovers)
      //  //        //   //    //{
      //  //        //   //    //    if(item.DealerLegalEntity != null && !dialersIds.Contains(item.DealerLegalEntity.IdCustomer))
      //  //        //   //    //    {
      //  //        //   //    //        result.Add(item);
      //  //        //   //    //    }
      //  //        //   //    //}

      //  //        //   //    _trueTurnovers = result;


      //  //        //   //    //    result = Turnovers.Where(p => p.IdTurnoverClassification == 3).ToList();



      //  //        //   //    //    _trueTurnovers=new List<Turnovers>();

      //  //        //   //    //    foreach (var item in result)
      //  //        //   //    //    {
      //  //        //   //    //        if (item.IdLegalEntity != null && !dialersIds.Contains((int) item.IdLegalEntity)) 
      //  //        //   //    //        {
      //  //        //   //    //            _trueTurnovers.Add(item);
      //  //        //   //    //        }
      //  //        //   //    //    }

      //  //        //   //    //  foreach(var item in Turnovers.Where(p => p.IdTurnoverClassification == 1).ToList())
      //  //        //   //    //  {
      //  //        //   //    //      _trueTurnovers.Add(item);
      //  //        //   //    //  }

      //  //        //   //    //  foreach (var item in Turnovers.Where(p => p.IdTurnoverClassification == 2).ToList())
      //  //        //   //    //  {
      //  //        //   //    //      _trueTurnovers.Add(item);
      //  //        //   //    //  }

      //  //        //   //    //  foreach (var item in Turnovers.Where(p => p.IdTurnoverClassification == 4).ToList())
      //  //        //   //    //  {
      //  //        //   //    //      _trueTurnovers.Add(item);
      //  //        //   //    //  }

      //  //        //   //}

      //  //        //   //return _trueTurnovers;

      //  //        //   //return Turnovers;

      //  //    }
      //  //} 

      //  /// <summary>
      //  /// Активные обороты
      //  /// </summary>
      //  //public static List<Turnovers> TurnoversActive
      //  //{
      //  //    get
      //  //    {
      //  //        return
      //  //             (List<Turnovers>) Turnovers.Where(q => q.TurnoverClassifications.IsActive);
      //  //            //TrueTurnovers;
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Получить оборот по Id
      //  ///// </summary>
      //  ///// <param name="idTurnover">Id оборота</param>
      //  ///// <returns>оборот</returns>
      //  //public static Turnovers GetTurnoverbyId(int idTurnover)
      //  //{
      //  //    return Turnovers.FirstOrDefault(p => p.IdTurnover == idTurnover);
      //  //}

      //  ///// <summary>
      //  ///// Обновление оборота
      //  ///// </summary>
      //  ///// <param name="turnoverItem">оборот</param>
      //  //public static void TurnoversUpdate(Turnovers turnoverItem)
      //  //{
      //  //    if (turnoverItem != null)
      //  //    {
      //  //        Turnovers turnoverUpdate = GetTurnoverbyId(turnoverItem.IdTurnover);
      //  //        if (turnoverUpdate != null)
      //  //        {
      //  //            turnoverUpdate.Amount = turnoverItem.Amount;
      //  //            turnoverUpdate.Period = turnoverItem.Period;
      //  //            turnoverUpdate.IdLegalEntity = turnoverItem.IdLegalEntity;
      //  //            turnoverUpdate.IdDealerLegalEntity = turnoverItem.IdDealerLegalEntity;
      //  //            turnoverUpdate.IdTurnoverClassification = turnoverItem.IdTurnoverClassification;

      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Добавление оборота
      //  ///// </summary>
      //  ///// <param name="turnoverItem">оборот</param>
      //  ///// <param name="userLogin"></param>
      //  //public static void TurnoversInsert(Turnovers turnoverItem, string userLogin)
      //  //{
      //  //    if(!string.IsNullOrEmpty(userLogin))
      //  //    {
      //  //        turnoverItem.IdUser = userLogin;
      //  //       // Entities.Turnovers.Add(turnoverItem);
      //  //        Add(turnoverItem);
      //  //        // DB.Save();
      //  //    }
            
      //  //}

      //  /// <summary>
      //  /// Добавление элемента
      //  /// </summary>
      //  /// <typeparam name="E">Класс элемента</typeparam>
      //  /// <param name="entity">Элемент</param>
      //  /// <param name="userLogin">Имя пользователя, который вносит изменения</param>
      //  /// <returns>Результат операции</returns>
      //  public static void Add<E>(E entity, string userLogin) where E : class
      //  {

         

      //      Entities.Entry(entity).State = System.Data.EntityState.Added;
      //       Save();
      //  }

      //  ///// <summary>
      //  ///// Удаление оборот
      //  ///// </summary>
      //  ///// <param name="turnoverItem">оборота</param>
      //  //public static void TurnoversDelete(Turnovers turnoverItem)
      //  //{
      //  //    if (turnoverItem != null)
      //  //    {
      //  //        Turnovers turnoverDel = GetTurnoverbyId(turnoverItem.IdTurnover);
      //  //        if (turnoverDel != null)
      //  //        {
      //  //           Entities.Turnovers.Remove(turnoverDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

        
      //  /// <summary>
      //  /// Список оборотов новичков
      //  /// </summary>
      //  /// <returns></returns>
      //  public static IEnumerable<Turnovers> GetNoviciesTurnovers(string userLogin)
      //  {
      //      var result = new List<Turnovers>();

      //      //var tempCol = from t in GetTurnoversByUser(userLogin) orderby t.Period select t;
            
      //      foreach(var le in LegalEntities)
      //      {
      //          var turnover = le.FirstTurnover;
      //          if(turnover!=null) result.Add(le.FirstTurnover);
      //      }


      //      return result;
      //  }

      //  /// <summary>
      //  /// Возвращает список оборотов определенного периода
      //  /// </summary>
      //  /// <param name="period"></param>
      //  /// <param name="turnovers"></param>
      //  /// <returns>список оборотов</returns>
      //  public static List<Turnovers> GetTurnoversByPeriod(DateTime period, List<Turnovers> turnovers)
      //  {
      //      return turnovers.Where(turnover => turnover.Period == period).ToList();
      //  }

      //  /// <summary>
      //  /// Возвращает список оборотов которые попадают в заданное окно дат.
      //  /// </summary>
      //  /// <param name="beginDate"></param>
      //  /// <param name="endDate"></param>
      //  /// <param name="turnovers"></param>
      //  /// <returns>список оборотов</returns>
      //  public static List<Turnovers> GetTurnoversBetweenDates(DateTime beginDate, DateTime endDate, List<Turnovers> turnovers)
      //  {
      //      List<Turnovers> resultList = new List<Turnovers>();
      //      foreach (var turnover in turnovers)
      //      {
      //          if(turnover.Period >= beginDate && turnover.Period <=endDate)
      //          {
      //              resultList.Add(turnover);
      //          }
      //      }
      //      return resultList;
      //  }


      //  /// <summary>
      //  /// Применение фильтра к коллекции оборотов
      //  /// </summary>
      //  /// <param name="filterItem">Фильтр</param>
      //  /// <param name="turnoversCollection">Коллекция оборотов (опционально)</param>
      //  /// <returns>Отфильтрованная коллекция оборотов</returns>
      //  public static List<Turnovers>  GetTurnoversByFilterItem(FilterItem filterItem, List<Turnovers> turnoversCollection = null )
      //  {
      //     //// List<Turnovers> result = new List<Turnovers>();

      //     // List<Turnovers> innerTurnoversCollection;
      //     // if(turnoversCollection==null)
      //     // {
      //     //     innerTurnoversCollection = DB.TrueTurnovers.ToList();
      //     // }
      //     // else
      //     // {
      //     //     innerTurnoversCollection = turnoversCollection;
      //     // }

      //     // if(filterItem.IdProfineRegion!=0)
      //     // {
      //     //     innerTurnoversCollection = GetTurnoversByRegionId(filterItem.IdProfineRegion, innerTurnoversCollection);
      //     // }

      //     // innerTurnoversCollection = GetTurnoversBetweenDates(filterItem.PeriodStart, filterItem.PeriodEnd,
      //     //                                                     innerTurnoversCollection);

      //     // if (!string.IsNullOrEmpty(filterItem.IdManager))
      //     // {
      //     //     innerTurnoversCollection = GetTurnoversByIdManager(filterItem.IdManager, innerTurnoversCollection);
      //     // }

      //     // return innerTurnoversCollection;
      //      return null;
      //  }


      //  /// <summary>
      //  /// Фильтрация оборотов по менеджеру
      //  /// </summary>
      //  /// <param name="idManager">Идентификатор менеджера</param>
      //  /// <param name="turnovers">Коллекция оборотов</param>
      //  /// <returns>Отфильтрованнная коллекция</returns>
      //  private static List<Turnovers> GetTurnoversByIdManager(string idManager, List<Turnovers> turnovers=null )
      //  {
      //      //List<Turnovers> result;

      //      //if(turnovers!=null)
      //      //{
      //      //    result = turnovers;
      //      //}
      //      //else
      //      //{
      //      //    result = DB.TrueTurnovers.ToList();
      //      //}


      //      //return result.Where(item => item.LegalEntities.Customers.IdManagerSTR == idManager).ToList();

      //      return null;
      //  }


      //  /// <summary>
      //  /// Получение списка юридических лиц из списка оборотов
      //  /// </summary>
      //  /// <param name="turnovers">Список оборотов</param>
      //  /// <returns>Список юридических лиц</returns>
      //  public static List<LegalEntities> GetLegalEntitiesFromTurnovers(IEnumerable<Turnovers> turnovers )
      //  {
      //      List<LegalEntities> result = new List<LegalEntities>();

      //      if (turnovers != null)
      //          foreach(var turnover in turnovers)
      //          {
      //              if(!result.Contains(turnover.LegalEntities))
      //              {
      //                  result.Add(turnover.LegalEntities);
      //              }
      //          }

      //      return result;
      //  }

      //  public static List<LegalEntities> GetDealerLegalEntitiesFromTurnovers(IEnumerable<Turnovers> turnovers)
      //  {
      //      List<LegalEntities> result = new List<LegalEntities>();

      //      foreach (var turnover in turnovers)
      //      {
      //          if (!result.Contains(turnover.DealerLegalEntity))
      //          {
      //              result.Add(turnover.DealerLegalEntity);
      //          }
      //      }

      //      return result;
      //  }

      //  ///// <summary>
      //  ///// 
      //  ///// </summary>
      //  ///// <param name="idRegion"></param>
      //  ///// <param name="turnovers"></param>
      //  ///// <returns></returns>
      //  //public static List<Turnovers> GetTurnoversByRegionId(int idRegion, List<Turnovers> turnovers )
      //  //{
      //  //    List<Turnovers> resultList = new List<Turnovers>();

      //  //    foreach(var item in turnovers)
      //  //    {
      //  //        if (item.IdProfineRegion == idRegion)
      //  //            resultList.Add(item);
      //  //    }

      //  //    return resultList;
      //  //} 

      //  /// <summary>
      //  /// недописанная
      //  /// </summary>
      //  /// <param name="profineRegion"></param>
      //  /// <returns></returns>
      //  public static List<Turnovers> GetTurnoversByLegalEntity(profineRegions profineRegion, List<Turnovers> turnovers)
      //  {
      //      List<Turnovers> resultList = new List<Turnovers>();
      //      foreach (var turnover in turnovers)
      //      {
      //          Customers customer = GetCustomerById(turnover.LegalEntities.IdCustomer);
      //      }


      //      return resultList;
      //  }

      //  /// <summary>
      //  /// Формирует список оборотов, доступных пользователю Windows на основании региона пользователя.
      //  /// </summary>
      //  /// <param name="user">пользователь Windows</param>
      //  /// <param name="turnovers">необязательный список оборотов</param>
      //  /// <returns>список оборотов</returns>
      //  public static IEnumerable<CRM.Database.Model.Turnovers> GetTurnoversByUser(string userLogin, IEnumerable<TrueTurnover> turnovers = null)
      //  {
      //      var result = GetTrueTurnoversByUser(userLogin);

      //     // if (turnovers == null)
      //     //     turnovers = DB.TrueTurnovers;
      //     //// return Turnovers;
      //     // if (userLogin != null)
      //     // {
      //     //   //  result.AddRange(turnovers.Where(turnoverItem => PermissionsManager.ValidateUserAndTurnover(user, turnoverItem)));

      //     //     Users user = GetUserByLogin(userLogin);

      //     //     if(user!=null)
      //     //     {
      //     //         foreach (var item in turnovers)
      //     //         {
      //     //             if (PermissionsManager.ValidateUserAndTurnover(user, item))
      //     //             {
      //     //                 result.Add(item);
      //     //             }
      //     //         }
      //     //     }
      //     // }
            
      //      return result;
      //  }

      
      //  /// <summary>
      //  /// Формирует список оборотов, доступных пользователю Windows на основании региона пользователя.
      //  /// </summary>
      //  /// <param name="user">пользователь Windows</param>
      //  /// <param name="turnovers">необязательный список оборотов</param>
      //  /// <returns>список оборотов</returns>
      //  public static IEnumerable<CRM.Database.Model.Turnovers> GetTrueTurnoversByUser(string userLogin, List<Turnovers> trueTurnovers = null)
      //  {
      //     // throw new NotImplementedException();
      //     // var turnCol = new TurnoversCollection();
      //      var result = new List<Database.Model.Turnovers>();

      //      //if (trueTurnovers == null)
      //      //{
      //      //    trueTurnovers = new List<Turnovers>();
      //      //    foreach(var item in TrueTurnovers)
      //      //    {
      //      //        if(item.LegalEntities.Customers.IdCustomerClassificationsProfine==2 && item.LegalEntities.Customers.IdCustomerClassificationsByBusiness!=1)
      //      //        {

      //      //        }
      //      //        else
      //      //        {
      //      //            trueTurnovers.Add(item);
      //      //        }
      //      //    }
      //      //    //turnovers = DB.Turnovers;
      //      //}
      //      // return Turnovers;
      //      if (userLogin != null)
      //      {
      //          //  result.AddRange(turnovers.Where(turnoverItem => PermissionsManager.ValidateUserAndTurnover(user, turnoverItem)));
      //          var col = new UsersCollection();
      //          Database.Model.Users user = col.GetUserByLogin(userLogin);

      //          if (user != null)
      //          {
      //              foreach (var item in TurnoversCollection.TrueTurnovers)
      //              {
      //                  //  var turnover = GetTurnoverbyId(item.IdTurnover);
      //                  //if(turnover!=null)
      //                  //{
      //                  //if (PermissionsManager.ValidateUserAndTurnover(user, item))
      //                  //{
      //                  //    result.Add(item);
      //                  //}
      //                  // }
      //              }
      //          }
      //      }

      //      return result;
      //  }

      //  #endregion

      //  #region TurnoverClassifications

      //  /// <summary>
      //  /// Список классификаций оборотов
      //  /// </summary>
      //  public static List<TurnoverClassifications> TurnoverClassifications
      //  {
      //      get { return Entities.TurnoverClassifications.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные классификации оборота
      //  /// </summary>
      //  public static IEnumerable<TurnoverClassifications> TurnoverClassificationsActive
      //  {
      //      get
      //      {
      //          return
      //              TurnoverClassifications.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedTurnoverClassificationsNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (TurnoverClassifications item in TurnoverClassifications)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdTurnoverClassification;
      //          listItem.ParentCollection = TurnoverClassifications;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.TurnoverClassificationRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.TurnoverClassificationEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }


      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedTurnoverClassificationsNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (TurnoverClassifications item in TurnoverClassifications)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdTurnoverClassification;
      //  //        listItem.ParentCollection = TurnoverClassifications;

      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.TurnoverClassificationRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.TurnoverClassificationEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

               
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить классификацию оборота по Id
      //  /// </summary>
      //  /// <param name="idTurnoverClassification">Id классификации оборота</param>
      //  /// <returns>классификация оборота</returns>
      //  public static TurnoverClassifications GetTurnoverClassificationbyId(int idTurnoverClassification)
      //  {
      //      TurnoverClassifications _result = null;
      //      foreach (TurnoverClassifications turnoverClassification in TurnoverClassifications)
      //      {
      //          if (turnoverClassification.IdTurnoverClassification == idTurnoverClassification)
      //          {
      //              _result = turnoverClassification;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление классификации оборота
      //  /// </summary>
      //  /// <param name="turnoverClassificationItem">классификация оборота</param>
      //  public static void TurnoverClassificationsUpdate(TurnoverClassifications turnoverClassificationItem)
      //  {
      //      if (turnoverClassificationItem != null)
      //      {
      //          TurnoverClassifications turnoverClassificationUpdate =
      //              GetTurnoverClassificationbyId(turnoverClassificationItem.IdTurnoverClassification);
      //          if (turnoverClassificationUpdate != null)
      //          {
      //              turnoverClassificationUpdate.IsActive = turnoverClassificationItem.IsActive;
      //              turnoverClassificationUpdate.TurnoverClassificationEn =
      //                  turnoverClassificationItem.TurnoverClassificationEn;
      //              turnoverClassificationUpdate.TurnoverClassificationRu =
      //                  turnoverClassificationItem.TurnoverClassificationRu;
      //              turnoverClassificationUpdate.IdParent = turnoverClassificationItem.IdParent;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление площадки
      //  /// </summary>
      //  /// <param name="turnoverClassificationItem">площадка</param>
      //  public static void TurnoverClassificationsInsert(TurnoverClassifications turnoverClassificationItem)
      //  {
      //      Entities.TurnoverClassifications.Add(turnoverClassificationItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление классификации оборота
      //  /// </summary>
      //  /// <param name="turnoverClassificationItem">классификация оборота</param>
      //  public static void TurnoverClassificationsDelete(TurnoverClassifications turnoverClassificationItem)
      //  {
      //      if (turnoverClassificationItem != null)
      //      {
      //          TurnoverClassifications turnoverClassificationDel =
      //              GetTurnoverClassificationbyId(turnoverClassificationItem.IdTurnoverClassification);
      //          if (turnoverClassificationDel != null)
      //          {
      //              Entities.TurnoverClassifications.Remove(turnoverClassificationDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region DistributionChannelTypes

      //  /// <summary>
      //  /// Список типов каналов продаж
      //  /// </summary>
      //  public static List<DistributionChannelTypes> DistributionChannelTypes
      //  {
      //      get { return Entities.DistributionChannelTypes.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные типы каналов продаж
      //  /// </summary>
      //  public static IEnumerable<DistributionChannelTypes> DistributionChannelTypesActive
      //  {
      //      get
      //      {
      //          return
      //              DistributionChannelTypes.Where(p => p.IsActive);
      //      }
      //  }

      //  /// <summary>
      //  /// Получение локализованного типов каналов продаж
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedDistributionChannelTypesNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (DistributionChannelTypes item in DistributionChannelTypes)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdDistributionChannelType;
      //          listItem.ParentCollection = DistributionChannelTypes;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.DistributionChannelTypeRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.DistributionChannelTypeEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить тип канала продаж по Id
      //  /// </summary>
      //  /// <param name="idDistributionChannelType">Id типа канала продаж</param>
      //  /// <returns>тип канала продаж</returns>
      //  public static DistributionChannelTypes GetDistributionChannelTypebyId(int idDistributionChannelType)
      //  {
      //      DistributionChannelTypes _result = null;
      //      foreach (DistributionChannelTypes distributionChannelType in DistributionChannelTypes)
      //      {
      //          if (distributionChannelType.IdDistributionChannelType == idDistributionChannelType)
      //          {
      //              _result = distributionChannelType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление типа канала продаж
      //  /// </summary>
      //  /// <param name="distributionChannelTypeItem">тип канала продаж</param>
      //  public static void DistributionChannelTypesUpdate(DistributionChannelTypes distributionChannelTypeItem)
      //  {
      //      if (distributionChannelTypeItem != null)
      //      {
      //          DistributionChannelTypes distributionChannelTypeUpdate =
      //              GetDistributionChannelTypebyId(distributionChannelTypeItem.IdDistributionChannelType);
      //          if (distributionChannelTypeUpdate != null)
      //          {
      //              distributionChannelTypeUpdate.IsActive = distributionChannelTypeItem.IsActive;
      //              distributionChannelTypeUpdate.DistributionChannelTypeRu =
      //                  distributionChannelTypeItem.DistributionChannelTypeRu;
      //              distributionChannelTypeUpdate.DistributionChannelTypeEn =
      //                  distributionChannelTypeItem.DistributionChannelTypeEn;
      //            //  distributionChannelTypeUpdate.IdUser = IdUser;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление типа канала продаж
      //  /// </summary>
      //  /// <param name="distributionChannelTypeItem">тип канала продаж</param>
      //  public static void DistributionChannelTypesInsert(DistributionChannelTypes distributionChannelTypeItem)
      //  {
      //    //  distributionChannelTypeItem.IdUser = IdUser;

      //      if (distributionChannelTypeItem.DistributionChannelTypeEn == null)
      //          distributionChannelTypeItem.DistributionChannelTypeEn = "-";
      //      if (distributionChannelTypeItem.DistributionChannelTypeRu == null)
      //          distributionChannelTypeItem.DistributionChannelTypeRu = "-";

      //      Entities.DistributionChannelTypes.Add(distributionChannelTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление типа канала продаж
      //  /// </summary>
      //  /// <param name="distributionChannelTypeItem">тип канала продаж</param>
      //  public static void DistributionChannelTypesDelete(DistributionChannelTypes distributionChannelTypeItem)
      //  {
      //      if (distributionChannelTypeItem != null)
      //      {
      //          DistributionChannelTypes distributionChannelTypeDel =
      //              GetDistributionChannelTypebyId(distributionChannelTypeItem.IdDistributionChannelType);
      //          if (distributionChannelTypeDel != null)
      //          {
      //              Entities.DistributionChannelTypes.Remove(distributionChannelTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region DistributionChannels

      //  /// <summary>
      //  /// Список каналов продаж
      //  /// </summary>
      //  public static List<DistributionChannels> DistributionChannels
      //  {
      //      get { return Entities.DistributionChannels.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные каналы продаж
      //  /// </summary>
      //  public static IEnumerable<DistributionChannels> DistributionChannelsActive
      //  {
      //      get
      //      {
      //          return
      //              DistributionChannels.Where(p => p.IsActive).
      //                  Where(q => q.DistributionChannelTypes.IsActive).
      //                  Where(d => d.Customers.IsActive == true);
      //      }
      //  }

      //  /// <summary>
      //  /// Получить канал продаж по Id
      //  /// </summary>
      //  /// <param name="idDistributionChannel">Id канала продаж</param>
      //  /// <returns>канал продаж</returns>
      //  public static DistributionChannels GetDistributionChannelbyId(int idDistributionChannel)
      //  {
      //      DistributionChannels _result = null;
      //      foreach (DistributionChannels distributionChannel in DistributionChannels)
      //      {
      //          if (distributionChannel.IdDistributionChannel == idDistributionChannel)
      //          {
      //              _result = distributionChannel;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление канала продаж
      //  /// </summary>
      //  /// <param name="distributionChannelItem">канал продаж</param>
      //  public static void DistributionChannelsUpdate(DistributionChannels distributionChannelItem)
      //  {
      //      if (distributionChannelItem != null)
      //      {
      //          DistributionChannels distributionChannelUpdate =
      //              GetDistributionChannelbyId(distributionChannelItem.IdDistributionChannel);
      //          if (distributionChannelUpdate != null)
      //          {
      //              distributionChannelUpdate.IsActive = distributionChannelItem.IsActive;
      //              distributionChannelUpdate.IdCustomer = distributionChannelItem.IdCustomer;
      //              distributionChannelUpdate.IdDistributionChannelType =
      //                  distributionChannelItem.IdDistributionChannelType;
      //              distributionChannelUpdate.Period = distributionChannelItem.Period;
      //              distributionChannelUpdate.Amount = distributionChannelItem.Amount;
      //          //    distributionChannelUpdate.IdUser = IdUser;

      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление канала продаж
      //  /// </summary>
      //  /// <param name="distributionChannelItem">канал продаж</param>
      //  public static void DistributionChannelsInsert(DistributionChannels distributionChannelItem)
      //  {
      //      Entities.DistributionChannels.Add(distributionChannelItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление канала продаж
      //  /// </summary>
      //  /// <param name="distributionChannelItem">канал продаж</param>
      //  public static void DistributionChannelsDelete(DistributionChannels distributionChannelItem)
      //  {
      //      if (distributionChannelItem != null)
      //      {
      //          DistributionChannels distributionChannelDel =
      //              GetDistributionChannelbyId(distributionChannelItem.IdDistributionChannel);
      //          if (distributionChannelDel != null)
      //          {
      //              Entities.DistributionChannels.Remove(distributionChannelDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CustomersProductsSystems

      //  /// <summary>
      //  /// Список CustomersProductsSystems
      //  /// </summary>
      //  public static List<CustomersProductsSystems> CustomersProductsSystems
      //  {
      //      get { return Entities.CustomersProductsSystems.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные CustomersProductsSystem
      //  /// </summary>
      //  public static IEnumerable<CustomersProductsSystems> CustomersProductsSystemsActive
      //  {
      //      get
      //      {
      //          return
      //              CustomersProductsSystems.Where(p => p.IsActive).
      //                  Where(q => q.Customers.IsActive == true).
      //                  Where(d => d.ProductSystems.IsActive == true);
      //      }
      //  }

      //  /// <summary>
      //  /// Получить CustomersProductsSystem по Id
      //  /// </summary>
      //  /// <param name="idCustomersProductsSystem">Id CustomersProductsSystem</param>
      //  /// <returns>CustomersProductsSystem</returns>
      //  public static CustomersProductsSystems GetCustomersProductsSystembyId(int idCustomersProductsSystem)
      //  {
      //      CustomersProductsSystems _result = null;
      //      foreach (CustomersProductsSystems customersProductsSystem in CustomersProductsSystems)
      //      {
      //          if (customersProductsSystem.IdCustomersProductsSystem == idCustomersProductsSystem)
      //          {
      //              _result = customersProductsSystem;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление CustomersProductsSystem
      //  /// </summary>
      //  /// <param name="customersProductsSystemItem">CustomersProductsSystem</param>
      //  public static void CustomersProductsSystemsUpdate(CustomersProductsSystems customersProductsSystemItem)
      //  {
      //      if (customersProductsSystemItem != null)
      //      {
      //          CustomersProductsSystems customersProductsSystemUpdate =
      //              GetCustomersProductsSystembyId(customersProductsSystemItem.IdCustomersProductsSystem);
      //          if (customersProductsSystemUpdate != null)
      //          {
      //              customersProductsSystemUpdate.IsActive = customersProductsSystemItem.IsActive;
      //              customersProductsSystemUpdate.IdProductSystem = customersProductsSystemItem.IdProductSystem;
      //              customersProductsSystemUpdate.IdCustomer = customersProductsSystemItem.IdCustomer;
      //              customersProductsSystemUpdate.Period = customersProductsSystemItem.Period;
      //              customersProductsSystemUpdate.Amount = customersProductsSystemItem.Amount;
      //            //  customersProductsSystemUpdate.IdUser = IdUser;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление CustomersProductsSystem
      //  /// </summary>
      //  /// <param name="customersProductsSystemItem">CustomersProductsSystem</param>
      //  public static void CustomersProductsSystemsInsert(CustomersProductsSystems customersProductsSystemItem)
      //  {
      //      Entities.CustomersProductsSystems.Add(customersProductsSystemItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление CustomersProductsSystem
      //  /// </summary>
      //  /// <param name="customersProductsSystemItem">CustomersProductsSystem</param>
      //  public static void CustomersProductsSystemsDelete(CustomersProductsSystems customersProductsSystemItem)
      //  {
      //      if (customersProductsSystemItem != null)
      //      {
      //          CustomersProductsSystems customersProductsSystemDel =
      //              GetCustomersProductsSystembyId(customersProductsSystemItem.IdCustomersProductsSystem);
      //          if (customersProductsSystemDel != null)
      //          {
      //              Entities.CustomersProductsSystems.Remove(customersProductsSystemDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region LegalEntities

      //  /// <summary>
      //  /// Получение юр. лиц а по идентификатору
      //  /// </summary>
      //  /// <param name="idLegalEntity">Идентификатор</param>
      //  /// <returns>Юр. лицо</returns>
      //  public static LegalEntities GetLegalEntityById(int idLegalEntity)
      //  {
      //      return LegalEntities.FirstOrDefault(p => p.IdLegalEntity == idLegalEntity);
      //  }

      //  /// <summary>
      //  /// Список юр. лиц
      //  /// </summary>
      //  public static List<LegalEntities> LegalEntities
      //  {
      //      get { return DB.Entities.LegalEntities.ToList(); }
      //  }


      //  public static LegalEntities GetLegalEntityByName(string legalEntityName)
      //  {
      //      return LegalEntities.FirstOrDefault(p => p.Name == legalEntityName);
      //      //return LegalEntities.Where(item => item.Name.Trim().ToUpper() == legalEntityName.Trim().ToUpper()) as LegalEntities;
      //  }

      //  /// <summary>
      //  /// Получение Юр. лица по имени у определенного клиента
      //  /// </summary>
      //  /// <param name="legalEntityName"></param>
      //  /// <param name="customer"></param>
      //  /// <returns>юр лицо или null</returns>
      //  public static LegalEntities GetLegalEntityByName(string legalEntityName, Customers customer)
      //  {
      //      foreach (var item in customer.LegalEntities)
      //      {
      //          if(item.Name.Trim().ToUpper() == legalEntityName.Trim().ToUpper())
      //          {
      //              return item;
      //          }
      //      }
      //      return null;
      //  }

      //  /// <summary>
      //  /// Возвращает список юр. лиц, содержащих в названии строку символов
      //  /// </summary>
      //  /// <param name="word"></param>
      //  /// <param name="exactName"></param>
      //  /// <returns></returns>
      //  public static List<LegalEntities> GetLegalEntitiesContainedString(string word = "/", bool exactName = false)
      //  {
      //      var result = new List<LegalEntities>();
      //      if (!exactName)
      //      {
      //          foreach (var legalEntity in LegalEntities)
      //          {
      //              if (legalEntity.Name.Contains(word))
      //                  result.Add(legalEntity);
      //          }
      //      }
      //      else
      //      {
      //          foreach (var legalEntity in LegalEntities)
      //          {
      //              if (legalEntity.Name.ToUpper().Trim().Contains(word.ToUpper().Trim()))
      //                  result.Add(legalEntity);
      //          }
      //      }
      //      return result;
      //  }

      //  public static void SplitLegalEntities()
      //  {
      //      var col = GetLegalEntitiesContainedString();
      //      foreach(var item in col)
      //      {

      //          string[] names = item.Name.Split('/');

      //          item.Name = names[0];

      //          for (int i = 1; i < names.Length; i++)
      //          {
      //              var newItem = new LegalEntities();
      //              newItem.Name = names[i];
      //              newItem.IdCustomer = item.IdCustomer;
      //              newItem.NumberInSAP = item.NumberInSAP;

      //              item.Customers.AddLegalEntity(newItem,"28prygun01");
      //          }

      //      }
      //  }

      //      /// <summary>
      //      /// Возвращает списой Юр Лиц с заполненными контактами (ФИО, телефон и эл. почта)
      //      /// </summary>
      //      /// <param name="customerId"></param>
      //      /// <returns></returns>
      //      public static List<LegalEntities> GetFullDefinedLegalEntitiesByCustomerId(int customerId)
      //      {
      //          var result = new List<LegalEntities>();
      //          var customer = GetCustomerById(customerId);
      //          if(customer!=null)
      //          {
      //              foreach (var legalEntity in customer.LegalEntities)
      //              {
      //                  if (legalEntity.Contacts.Count > 0)
      //                  {
      //                      foreach (var item in legalEntity.Contacts)
      //                      {
      //                          if(!(string.IsNullOrEmpty(item.Name)) && !(string.IsNullOrEmpty(item.Phone)) && !(string.IsNullOrEmpty(item.Email)))
      //                          {
      //                              if(!result.Contains(legalEntity))
      //                                  result.Add(legalEntity);
      //                          }
                                
      //                      }
      //                  }
      //              }
      //          }
      //          return result;
      //      }

      //  #endregion

      //  #region Contacts
        
      //  /// <summary>
      //  /// Коллекция всех контактов
      //  /// </summary>
      //  public static IEnumerable<Contacts>  Contacts
      //  {
      //      get { return DB.Entities.Contacts; }
      //  }
        
      //  /// <summary>
      //  /// Получение контакта по Id
      //  /// </summary>
      //  /// <param name="idContact">Идентификатор</param>
      //  /// <returns>Контакт</returns>
      //  public static Contacts GetContactById(int idContact)
      //  {
      //      return Contacts.Single(p => p.IdContact == idContact);
      //  }

      //  /// <summary>
      //  /// Возвращает список контактов, отфильтрованный по Юр Лицу
      //  /// </summary>
      //  public static List<Contacts> GetContactsByLegalEntityId(int idLegalEntity)
      //  {
      //      var result = new List<Contacts>();
      //      var entity = GetLegalEntityById(idLegalEntity);
      //      if(entity!= null)
      //          result.AddRange(entity.Contacts);
      //      return result;
      //  }

      //  /// <summary>
      //  /// Возвращает список заполненных контактов юр. лица (ФИО, телефон, эл. почта)
      //  /// </summary>
      //  /// <param name="idLegalEntity"></param>
      //  /// <returns></returns>
      //  public static List<Contacts> GetFullDefinedContactsByLegalEntityId(int idLegalEntity)
      //  {
      //      var result = new List<Contacts>();
      //      var entity = GetLegalEntityById(idLegalEntity);
      //      if(entity!= null)
      //      {
      //          foreach (var item in entity.Contacts)
      //          {
      //              if(!(String.IsNullOrEmpty(item.Name))&&!(String.IsNullOrEmpty(item.Phone))&&!(string.IsNullOrEmpty(item.Email)))
      //              {
      //                  if (!result.Contains(item))
      //                      result.Add(item);
      //              }
      //          }
      //      }
      //      return result;
      //  }

      //      ///// <summary>
      //      ///// Возвращает список заполненных контактов Клиента (ФИО, телефон, эл. почта)
      //      ///// </summary>
      //      ///// <param name="idCustomer"></param>
      //      ///// <returns></returns>
      //      //public static List<Contacts> GetFullDefinedContactsByCustomerId(int idCustomer)
      //      //{
      //      //    var result = new List<Contacts>();
      //      //    var customer = GetCustomerById(idCustomer);
      //      //    if(customer!=null)
      //      //    {
      //      //        if(customer.Contacts!=null)
      //      //        {
      //      //            foreach (var item in customer.Contacts)
      //      //            {
      //      //                if (!(String.IsNullOrEmpty(item.Name)) && !(String.IsNullOrEmpty(item.Phone)) && !(string.IsNullOrEmpty(item.Email)))
      //      //                {
      //      //                    if (!result.Contains(item))
      //      //                        result.Add(item);
      //      //                }
      //      //            }
      //      //        }
      //      //    }
      //      //    return result;
      //      //}

      //      ///// <summary>
      //      ///// Проверяет уникальность имени пользователя в контактах.
      //      ///// </summary>
      //      ///// <param name="contact"></param>
      //      ///// <returns></returns>
      //      //public static bool ContactLoginNameValidation(Contacts contact)
      //      //{
      //      //    if (contact == null) return false;
      //      //    if (string.IsNullOrEmpty(contact.LoginName)) return false;
      //      //    foreach (var item in Contacts)
      //      //    {
      //      //        if (item!=null)
      //      //            if(item.LoginName!=null)
      //      //                if (item.LoginName.Trim().ToUpper() == contact.LoginName.Trim().ToUpper())
      //      //                    if (contact.IdContact != item.IdContact)
      //      //                        return false;
      //      //    }
      //      //    return true;
      //      //}

      //  #endregion

      //  #region UsersInRoles

      //  /// <summary>
      //  /// Список площадок
      //  /// </summary>
      //  public static List<UsersInRoles> UsersInRoles
      //  {
      //      get { return Entities.UsersInRoles.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные площадки
      //  /// </summary>
      //  //public static IEnumerable<UsersInRoles> UsersInRolesActive
      //  //{
      //  //    get
      //  //    {
      //  //        return
      //  //            UsersInRoles.Where(p => p.IsActive).Where(q => q.TrainingsCenters.IsActive);
      //  //    }
      //  //}



      //  /// <summary>
      //  /// Получить площадку по Id
      //  /// </summary>
      //  /// <param name="idUsersInRole">Id площадки</param>
      //  /// <returns>площадка</returns>
      //  public static UsersInRoles GetUsersInRolebyId(int idUsersInRole)
      //  {
      //      return Enumerable.FirstOrDefault(UsersInRoles, usersInRole => usersInRole.IdUsersInRole == idUsersInRole);
      //  }

      //  /// <summary>
      //  /// Ищет роли, которым принадлежит данный пользователь
      //  /// </summary>
      //  /// <param name="userLoginName">имя пользователя</param>
      //  /// <returns>список ролей</returns>
      //  public static List<CRM.Database.Model.Roles> GetRolesByUserLoginname(string userLoginName)
      //  {
      //      var col = new RolesCollection();

      //      return col.GetRolesByUserLoginname(userLoginName);
      //  }


       
        
      //  /// <summary>
      //  /// Получение списка ролей пользователя
      //  /// </summary>
      //  /// <param name="user">Пользователь</param>
      //  /// <returns>Список ролей</returns>
      //  public static List<Roles> GetRolesByUser(Users user)
      //  {
      //      List<Roles> result = new List<Roles>();
      //      foreach (var item in user.UsersInRoles)
      //      {
      //          result.Add(item.Roles);
      //      }

      //      return result;
      //  }


      //  /// <summary>
      //  /// Обновление площадки
      //  /// </summary>
      //  /// <param name="usersInRoleItem">площадка</param>
      //  public static void UsersInRolesUpdate(UsersInRoles usersInRoleItem)
      //  {
      //      if (usersInRoleItem != null)
      //      {
      //          UsersInRoles usersInRoleUpdate = GetUsersInRolebyId(usersInRoleItem.IdUsersInRole);
      //          if (usersInRoleUpdate != null)
      //          {
      //              usersInRoleUpdate.IdUser = usersInRoleItem.IdUser;
      //              usersInRoleUpdate.IdRole = usersInRoleItem.IdRole;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление площадки
      //  /// </summary>
      //  /// <param name="usersInRoleItem">площадка</param>
      //  public static void UsersInRolesInsert(UsersInRoles usersInRoleItem)
      //  {
      //      Entities.UsersInRoles.Add(usersInRoleItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление площадки
      //  /// </summary>
      //  /// <param name="usersInRoleItem">площадка</param>
      //  public static void UsersInRolesDelete(UsersInRoles usersInRoleItem)
      //  {
      //      if (usersInRoleItem != null)
      //      {
      //          UsersInRoles usersInRoleDel = GetUsersInRolebyId(usersInRoleItem.IdUsersInRole);
      //          if (usersInRoleDel != null)
      //          {
      //              Entities.UsersInRoles.Remove(usersInRoleDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region RolesAccesses

      //  /// <summary>
      //  /// Список площадок
      //  /// </summary>
      //  public static List<RolesAccesses> RolesAccesses
      //  {
      //      get { return Entities.RolesAccesses.ToList(); }
      //  }

      //  /// <summary>
      //  /// Получить площадку по Id
      //  /// </summary>
      //  /// <param name="idRolesAccess">Id площадки</param>
      //  /// <returns>площадка</returns>
      //  public static RolesAccesses GetRolesAccessbyId(int idRolesAccess)
      //  {
      //      RolesAccesses _result = null;
      //      foreach (RolesAccesses rolesAccess in RolesAccesses)
      //      {
      //          if (rolesAccess.IdRolesAccess == idRolesAccess)
      //          {
      //              _result = rolesAccess;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление площадки
      //  /// </summary>
      //  /// <param name="rolesAccessItem">площадка</param>
      //  /// <param name="userLogin"></param>
      //  public static void RolesAccessesUpdate(RolesAccesses rolesAccessItem, string userLogin)
      //  {
      //      if (rolesAccessItem != null)
      //      {
      //          RolesAccesses rolesAccessUpdate = GetRolesAccessbyId(rolesAccessItem.IdRolesAccess);
      //          if (rolesAccessUpdate != null)
      //          {
      //              rolesAccessItem.IdUserLoginModified = userLogin;
      //              rolesAccessUpdate.IdRole = rolesAccessItem.IdRole;
      //              rolesAccessUpdate.IdControllersAndAction = rolesAccessItem.IdControllersAndAction;
      //              rolesAccessUpdate.IdUserLoginModified = rolesAccessItem.IdUserLoginModified;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление площадки
      //  /// </summary>
      //  /// <param name="rolesAccessItem">площадка</param>
      //  /// <param name="userLogin"></param>
      //  public static void RolesAccessesInsert(RolesAccesses rolesAccessItem, string userLogin)
      //  {
      //      rolesAccessItem.IdUserLoginModified = userLogin;
      //      Entities.RolesAccesses.Add(rolesAccessItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление площадки
      //  /// </summary>
      //  /// <param name="rolesAccessItem">площадка</param>
      //  public static void RolesAccessesDelete(RolesAccesses rolesAccessItem)
      //  {
      //      if (rolesAccessItem != null)
      //      {
      //          RolesAccesses rolesAccessDel = GetRolesAccessbyId(rolesAccessItem.IdRolesAccess);
      //          if (rolesAccessDel != null)
      //          {
      //              Entities.RolesAccesses.Remove(rolesAccessDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ControllersAndActions

      //  ///// <summary>
      //  ///// Список площадок
      //  ///// </summary>
      //  //public static List<ControllersAndActions> ControllersAndActions
      //  //{
      //  //    get { return Entities.ControllersAndActions.ToList(); }
      //  //}

      //  /////// <summary>
      //  ///// Получить площадку по Id
      //  ///// </summary>
      //  ///// <param name="idControllersAndAction">Id площадки</param>
      //  ///// <returns>площадка</returns>
      //  //public static ControllersAndActions GetControllersAndActionbyId(int idControllersAndAction)
      //  //{
      //  //    ControllersAndActions _result = null;
      //  //    foreach (ControllersAndActions controllersAndAction in ControllersAndActions)
      //  //    {
      //  //        if (controllersAndAction.IdControllersAndAction == idControllersAndAction)
      //  //        {
      //  //            _result = controllersAndAction;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  ///// <summary>
      //  ///// Возвращает Id записи, если найдено совпадение controller и action
      //  ///// </summary>
      //  ///// <param name="controller"></param>
      //  ///// <param name="action"></param>
      //  ///// <returns>ID или 0 если не найдено</returns>
      //  //public static int GetIdControllersAndAction(string controller, string action)
      //  //{
      //  //    foreach (var item in ControllersAndActions)
      //  //    {
      //  //        if (item.Controller == controller && item.Action == action)
      //  //            return item.IdControllersAndAction;
      //  //    }
      //  //    return 0;
      //  //}

      //  ///// <summary>
      //  ///// Обновление площадки
      //  ///// </summary>
      //  ///// <param name="controllersAndActionItem">площадка</param>
      //  //public static void ControllersAndActionsUpdate(ControllersAndActions controllersAndActionItem)
      //  //{
      //  //    if (controllersAndActionItem != null)
      //  //    {
      //  //        ControllersAndActions controllersAndActionUpdate = GetControllersAndActionbyId(controllersAndActionItem.IdControllersAndAction);
      //  //        if (controllersAndActionUpdate != null)
      //  //        {
      //  //            controllersAndActionUpdate.Controller = controllersAndActionItem.Controller;
      //  //            controllersAndActionUpdate.Action = controllersAndActionItem.Action;
      //  //            controllersAndActionUpdate.Description = controllersAndActionItem.Description;
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Добавление площадки
      //  ///// </summary>
      //  ///// <param name="controllersAndActionItem">площадка</param>
      //  //public static void ControllersAndActionsInsert(ControllersAndActions controllersAndActionItem)
      //  //{

      //  //    ControllersAndActions item = new ControllersAndActions();
      //  //  //  var item = ControllersAndActions.CreateObject(); 
      //  //    //Entities.ControllersAndActions.Add(controllersAndActionItem);
      //  //    item.Action = controllersAndActionItem.Action;
      //  //    item.Controller = controllersAndActionItem.Controller;
      //  //    item.Description = "";
      //  //    Entities.ControllersAndActions.Add(item);
      //  //    DB.Save();
      //  //}

      //  ///// <summary>
      //  ///// Удаление площадки
      //  ///// </summary>
      //  ///// <param name="controllersAndActionItem">площадка</param>
      //  //public static void ControllersAndActionsDelete(ControllersAndActions controllersAndActionItem)
      //  //{
      //  //    if (controllersAndActionItem != null)
      //  //    {
      //  //        ControllersAndActions controllersAndActionDel = GetControllersAndActionbyId(controllersAndActionItem.IdControllersAndAction);
      //  //        if (controllersAndActionDel != null)
      //  //        {
      //  //            Entities.ControllersAndActions.Remove(controllersAndActionDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  #endregion

      //  #region AddressesTypes

      //  /// <summary>
      //  /// Список типов адресов
      //  /// </summary>
      //  public static List<AddressesTypes> AddressesTypes
      //  {
      //      get { return Entities.AddressesTypes.ToList(); }
      //  }

      //  /// <summary>
      //  /// Активные типы адресов
      //  /// </summary>
      //  public static IEnumerable<AddressesTypes> AddressesTypesActive
      //  {
      //      get
      //      {
      //          return
      //              AddressesTypes.Where(p => p.IsActive);
      //      }
      //  }
        
      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedAddressesTypesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (AddressesTypes item in AddressesTypes)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdAddressesType;
      //  //        listItem.ParentCollection = AddressesTypes;
      //  //        switch(CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.AddressesTypeRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.AddressesTypeEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }
               
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить тип адреса по Id
      //  /// </summary>
      //  /// <param name="idAddressesType">Id типа адреса</param>
      //  /// <returns>тип адреса</returns>
      //  public static AddressesTypes GetAddressesTypebyId(int idAddressesType)
      //  {
      //      AddressesTypes _result = null;
      //      foreach (AddressesTypes addressesType in AddressesTypes)
      //      {
      //          if (addressesType.IdAddressesType == idAddressesType)
      //          {
      //              _result = addressesType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление типа адреса
      //  /// </summary>
      //  /// <param name="addressesTypeItem">тип адреса</param>
      //  public static void AddressesTypesUpdate(AddressesTypes addressesTypeItem)
      //  {
      //      if (addressesTypeItem != null)
      //      {
      //          AddressesTypes addressesTypeUpdate = GetAddressesTypebyId(addressesTypeItem.IdAddressesType);
      //          if (addressesTypeUpdate != null)
      //          {
      //              addressesTypeUpdate.IsActive = addressesTypeItem.IsActive;
      //              addressesTypeUpdate.AddressesTypeEn = addressesTypeItem.AddressesTypeEn;
      //              addressesTypeUpdate.AddressesTypeRu = addressesTypeItem.AddressesTypeRu;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление типа адреса
      //  /// </summary>
      //  /// <param name="addressesTypeItem">тип адреса</param>
      //  public static void AddressesTypesInsert(AddressesTypes addressesTypeItem)
      //  {
      //      Entities.AddressesTypes.Add(addressesTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление типа адреса
      //  /// </summary>
      //  /// <param name="addressesTypeItem">тип адреса</param>
      //  public static void AddressesTypesDelete(AddressesTypes addressesTypeItem)
      //  {
      //      if (addressesTypeItem != null)
      //      {
      //          AddressesTypes addressesTypeDel = GetAddressesTypebyId(addressesTypeItem.IdAddressesType);
      //          if (addressesTypeDel != null)
      //          {
      //              Entities.AddressesTypes.Remove(addressesTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region RolesTypes

      //  /// <summary>
      //  /// Список площадок
      //  /// </summary>
      //  public static List<RolesTypes> RolesTypes
      //  {
      //      get { return Entities.RolesTypes.ToList(); }
      //  }

      //  /// <summary>
      //  /// Получение локализованного списка значений
      //  /// </summary>
      //  /// <param name="culture"></param>
      //  /// <returns></returns>
      //  public static List<LocalizedListItem> GetLocalizedRolesTypesNames(string culture)
      //  {
      //      List<LocalizedListItem> result = null;
      //      foreach (RolesTypes item in RolesTypes)
      //      {
      //          if (result == null) result = new List<LocalizedListItem>();
      //          var listItem = new LocalizedListItem();
      //          listItem.Id = item.IdRolesType;
      //          listItem.ParentCollection = RolesTypes;
      //          if (culture.Contains("ru"))
      //          {
      //              listItem.LocaLizedString = item.RolesTypeRu;
      //          }
      //          else
      //          {
      //              listItem.LocaLizedString = item.RolesTypeEn;
      //          }
      //          result.Add(listItem);
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Получить площадку по Id
      //  /// </summary>
      //  /// <param name="idRolesType">Id площадки</param>
      //  /// <returns>площадка</returns>
      //  public static RolesTypes GetRolesTypebyId(int idRolesType)
      //  {
      //      RolesTypes _result = null;
      //      foreach (RolesTypes rolesType in RolesTypes)
      //      {
      //          if (rolesType.IdRolesType == idRolesType)
      //          {
      //              _result = rolesType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление площадки
      //  /// </summary>
      //  /// <param name="rolesTypeItem">площадка</param>
      //  public static void RolesTypesUpdate(RolesTypes rolesTypeItem)
      //  {
      //      if (rolesTypeItem != null)
      //      {
      //          RolesTypes rolesTypeUpdate = GetRolesTypebyId(rolesTypeItem.IdRolesType);
      //          if (rolesTypeUpdate != null)
      //          {
      //              rolesTypeUpdate.RolesTypeEn = rolesTypeItem.RolesTypeEn;
      //              rolesTypeUpdate.RolesTypeRu = rolesTypeItem.RolesTypeRu;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление площадки
      //  /// </summary>
      //  /// <param name="rolesTypeItem">площадка</param>
      //  public static void RolesTypesInsert(RolesTypes rolesTypeItem)
      //  {
      //      Entities.RolesTypes.Add(rolesTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление площадки
      //  /// </summary>
      //  /// <param name="rolesTypeItem">площадка</param>
      //  public static void RolesTypesDelete(RolesTypes rolesTypeItem)
      //  {
      //      if (rolesTypeItem != null)
      //      {
      //          RolesTypes rolesTypeDel = GetRolesTypebyId(rolesTypeItem.IdRolesType);
      //          if (rolesTypeDel != null)
      //          {
      //              Entities.RolesTypes.Remove(rolesTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }
       
      //  #endregion

      //  #region UserInRoles

      //  /// <summary>
      //  /// Проверяет принадлежность логина пользователя типу группы
      //  /// </summary>
      //  /// <param name="idRoleType"></param>
      //  /// <param name="userLoginName"></param>
      //  /// <returns></returns>
      //  public static bool IsUserInRoleType(int idRoleType, string userLoginName)
      //  {
      //      List<Database.Model.Roles> rolesList = GetRolesByUserLoginname(userLoginName);
      //      if (rolesList != null)
      //      {
      //          return rolesList.Any(role => role.IdRolesType == idRoleType);
      //      }
      //      return false;
      //  }
        
      //  /// <summary>
      //  /// Пользователь имеет тип роли?
      //  /// </summary>
      //  /// <param name="idRoleType">Идентификатор типа роли</param>
      //  /// <param name="user">Пользователь</param>
      //  /// <returns>Да/нет</returns>
      //  public static bool IsUserInRoleType(int idRoleType, Users user)
      //  {
      //      List<Roles> rolesList = GetRolesByUser(user);
      //      if (rolesList != null)
      //      {
      //          return rolesList.Any(role => role.IdRolesType == idRoleType);
      //      }
      //      return false;
      //  }

      //  /// <summary>
      //  /// Возвращает список имен пользователей по типу роли
      //  /// </summary>
      //  /// <param name="idRoleType"></param>
      //  /// <returns></returns>
      //  public static List<Users> GetUsersByRoleType(int idRoleType)
      //  {
      //      List<Users> result = new List<Users>();
      //      foreach (var role in Roles)
      //      {
      //          if (role.IdRolesType == idRoleType)
      //          {
      //              UsersInRoles user = GetUsersInRolebyId(role.IdRole);
      //              if (user != null)
      //              {
      //                  if (result.Contains(user.Users))
      //                  {
      //                      result.Add(user.Users);
      //                  }
      //              }
      //          }
      //      }
      //      return result;
      //  }

      //  /// <summary>
      //  /// Возвращает список имен пользователей по типу роли и региону профайн
      //  /// </summary>
      //  /// <param name="idRoleType"></param>
      //  /// <param name="idProfineRegion"></param>
      //  /// <returns></returns>
      //  public static List<Users> GetUsersByRoleTypeAndIdProfineRegion(int idRoleType, int idProfineRegion)
      //  {
      //      List<Users> result = new List<Users>();
      //      foreach (var role in Roles)
      //      {
      //          if (role.IdRolesType == idRoleType && role.IdProfineRegion == idProfineRegion)
      //          {
      //              UsersInRoles user = GetUsersInRolebyId(role.IdRole);
      //              if (user != null)
      //              {
      //                  if (result.Contains(user.Users))
      //                  {
      //                      result.Add(user.Users);
      //                  }
      //              }
      //          }
      //      }
      //      return result;
      //  }

       

      //  #endregion

      //  #region Users
        
      //  ///// <summary>
      //  ///// Возвращает список пользователей, отсортированнй по полному русскому имени
      //  ///// </summary>
      //  //public static List<Users> Users
      //  //{
      //  //    get
      //  //    {
      //  //        return Entities.Users.OrderBy(user => user.UserFullNameRu).ToList();
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Получение пользователя из AD
      //  ///// </summary>
      //  ///// <param name="login">Логин</param>
      //  ///// <returns>Пользователь</returns>
      //  //public static Users GetUserNameFromADByLogin(string login)
      //  //{
      //  //    Users result = new Users();
      //  //    login = login.ToUpper().Replace(@"RU\", "");
      //  //    DirectorySearcher ds = new DirectorySearcher();
      //  //    ds.Filter = "(objectCategory=user)";
      //  //    SearchResultCollection sr = ds.FindAll();
      //  //    foreach (SearchResult s in sr)
      //  //    {
      //  //        foreach (object o in s.Properties["samaccountname"])
      //  //        {
      //  //            if (o.ToString().ToUpper() == login)
      //  //            {
      //  //                try
      //  //                {
      //  //                    result.UserFullNameEn = s.Properties["displayname"][0] as string;//descriptio
      //  //                    result.UserFullNameRu = s.Properties["description"][0] as string;
      //  //                    result.UserEmail = s.Properties["mail"][0] as string;
      //  //                    result.UserLogin = login;

      //  //                    return result;
      //  //                }
      //  //                catch
      //  //                {
      //  //                }
      //  //            }

      //  //        }
      //  //    }


      //  //    return null;
      //  //}

      //  //public static void UpdateUsersEmails()
      //  //{
      //  //    foreach(var user in Users)
      //  //    {
      //  //        var tempUser = GetUserNameFromADByLogin(user.UserLogin);

      //  //        if(tempUser!=null)
      //  //        {
      //  //            DB.GetUserbyId(user.IdUser).UserEmail = tempUser.UserEmail;
      //  //        }
      //  //    }

      //  //    Save();
      //  //}

      //  ///// <summary>
      //  ///// Проверка пользователя
      //  ///// </summary>
      //  ///// <param name="user">Пользователь</param>
      //  ///// <returns>Результат проверки</returns>
      //  //public static bool ValidateUser(Users user)
      //  //{
      //  //    if (!string.IsNullOrEmpty(user.UserFullNameEn) && !string.IsNullOrEmpty(user.UserFullNameRu) && !string.IsNullOrEmpty(user.UserLogin))
      //  //        return true;
      //  //    return false;
      //  //}

      //  ///// <summary>
      //  ///// Получение имени пользователя по логину
      //  ///// </summary>
      //  ///// <param name="login">Логин</param>
      //  ///// <returns>Имя пользователя</returns>
      //  //public static Users GetUserByLogin(string login)
      //  //{
      //  //    if (string.IsNullOrEmpty(login))
      //  //        return null;
      //  //    if (login.Length < 6)
      //  //        return null;

      //  //    Users user=null;

      //  //    Users.Count();

      //  //   try
      //  //   {
      //  //       foreach (var item in Users)
      //  //       {

      //  //           if (item.UserLogin.ToUpper().Replace(@"RU\", "").Trim() == login.ToUpper().Replace(@"RU\", "").Trim())
      //  //           {
      //  //               return item;
      //  //           }
      //  //       }
            
      //  //   }
      //  //    catch
      //  //    {
      //  //        return null;
      //  //    }
            
      //  //    //= Users.FirstOrDefault(p => login != null && (p.UserLogin != null && p.UserLogin.ToUpper() == login.ToUpper()));
      //  //    //if (user==null)
      //  //    //{
      //  //    //    user = Users.FirstOrDefault(p => login != null && (p.UserLogin != null && p.UserLogin.ToUpper().Replace(@"RU/", "") == login.ToUpper().Replace(@"RU/", "")));    
      //  //    //}

      //  //    if (user == null)
      //  //    {
           
      //  //    user = GetUserNameFromADByLogin(login);
      //  //    UsersInsert(user);
      //  //    //    return null;
      //  //   }

      //  //    if(!ValidateUser(user))
      //  //    {
      //  //     UpdateUserInfo(user);
      //  //    }

      //  //    return user;
      //  //}

      //  //public static void UpdateUserInfo(Users user)
      //  //{
      //  //    var usernew = GetUserNameFromADByLogin(user.UserLogin);
      //  //    user.UserFullNameRu = usernew != null ? usernew.UserFullNameRu : user.UserFullNameEn;
      //  //    UsersUpdate(user);
      //  //}

      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedUsersNames(string culture)
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Users item in Users)
      //  //    {
      //  //        if (!ValidateUser(item))
      //  //        {
      //  //            UpdateUserInfo(item);
      //  //        }

      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdUser;
      //  //        listItem.ParentCollection = Users;
      //  //        if (culture.Contains("ru"))
      //  //        {
      //  //            listItem.LocaLizedString = item.UserFullNameRu;
      //  //        }
      //  //        else
      //  //        {
      //  //            listItem.LocaLizedString = item.UserFullNameEn;
      //  //        }
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  ///// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedManagersNames(string culture)
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Users item in Managers)
      //  //    {
      //  //        if (!ValidateUser(item))
      //  //        {
      //  //            UpdateUserInfo(item);
      //  //        }

      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdUser;
      //  //        listItem.ParentCollection = Users;
      //  //        if (culture.Contains("ru"))
      //  //        {
      //  //            listItem.LocaLizedString = item.UserFullNameRu;
      //  //        }
      //  //        else
      //  //        {
      //  //            listItem.LocaLizedString = item.UserFullNameEn;
      //  //        }
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  ///// <summary>
      //  ///// Менеджеры
      //  ///// </summary>
      //  //public static IEnumerable<Users> Managers
      //  //{
      //  //    get
      //  //    {
      //  //        return Users.Where(user => DB.IsUserInRoleType(2, user)).ToList();
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Получить пользователя по Id
      //  ///// </summary>
      //  ///// <param name="idUser">Id пользователя</param>
      //  ///// <returns>пользователь</returns>
      //  //public static Users GetUserbyId(int idUser)
      //  //{
      //  //    Users _result = null;
      //  //    foreach (Users user in Users)
      //  //    {
      //  //        if (user.IdUser == idUser)
      //  //        {
      //  //            _result = user;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  /////// <summary>
      //  /////// Обновление пользователя
      //  /////// </summary>
      //  /////// <param name="userItem">пользователь</param>
      //  ////public static void UsersUpdate(Users userItem)
      //  ////{
      //  ////    if (userItem != null)
      //  ////    {
      //  ////        Users userUpdate = GetUserbyId(userItem.IdUser);
      //  ////        if (userUpdate != null)
      //  ////        {
      //  ////            userUpdate.UserFullNameEn = userItem.UserFullNameEn;
      //  ////            userUpdate.UserFullNameRu = userItem.UserFullNameRu;
      //  ////            userUpdate.UserLogin = userItem.UserLogin;
      //  ////            userUpdate.UserEmail = userItem.UserEmail;

      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  ///// <summary>
      //  ///// Добавление пользователя
      //  ///// </summary>
      //  ///// <param name="userItem">пользователь</param>
      //  //public static void UsersInsert(Users userItem)
      //  //{
      //  //    Entities.Users.Add(userItem);
      //  //    DB.Save();
      //  //}

      //  ///// <summary>
      //  ///// Удаление пользователя
      //  ///// </summary>
      //  ///// <param name="userItem">пользователь</param>
      //  //public static void UsersDelete(Users userItem)
      //  //{
      //  //    if (userItem != null)
      //  //    {
      //  //        Users userDel = GetUserbyId(userItem.IdUser);
      //  //        if (userDel != null)
      //  //        {
      //  //            Entities.Users.Remove(userDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Достать юзеров по типу роли
      //  ///// </summary>
      //  ///// <param name="idRoleType"></param>
      //  ///// <returns></returns>
      //  //public static List<Users> GetUsersByIdRoleType(int idRoleType)
      //  //{
      //  //    var result = new List<Users>();
      //  //    foreach (var roleItem in DB.Roles)
      //  //    {
      //  //        if (roleItem.IdRolesType == idRoleType)
      //  //        {
      //  //            if(roleItem.UsersInRoles!=null)
      //  //            {
      //  //                foreach (var usersInRoleItem in roleItem.UsersInRoles)
      //  //                {
      //  //                    if(usersInRoleItem!=null)
      //  //                    {
      //  //                        if (usersInRoleItem.Users!=null)
      //  //                        {
      //  //                            if (!result.Contains(usersInRoleItem.Users))
      //  //                                result.Add(usersInRoleItem.Users);
      //  //                        }
      //  //                    }
      //  //                }
      //  //            }
      //  //        }
      //  //    }
      //  //    return result;
      //  //}

      //  #endregion
        
      //  // Учебный центр ////////////////////////////////////////////////
      //  #region Training Center - moved
      //  //#region TrainingsCourses - MOVED

      //  ///// <summary>
      //  //    /// Список учебных курсов
      //  //    /// </summary>
      //  //    public static List<TrainingsCourses> TrainingsCourses
      //  //    {
      //  //        get { return Entities.TrainingsCourses.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Активные тренеры
      //  //    /// </summary>
      //  //    public static IEnumerable<TrainingsCourses> TrainingsCoursesActive
      //  //    {
      //  //        get
      //  //        {
      //  //            return
      //  //                TrainingsCourses.Where(p => p.IsActive);
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список активных курсов с присутсвующими тренерами, площадками и аудиториями
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsCourses> GetFullDefinedCourses()
      //  //    {
      //  //        var result = new List<TrainingsCourses>();
      //  //        foreach (var course in DB.TrainingsCoursesActive)
      //  //        {
      //  //            if (course.TrainingsCoursesTrainers.Count > 0)
      //  //                if (course.TrainingsCoursesPlaces.Count > 0)
      //  //                    if (course.TrainingsCoursesAuditoriums.Count > 0)
      //  //                        if(course.TrainingsCoursesAndTypes.Count > 0)
      //  //                            result.Add(course);
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список активных курсов заданного типа с присутсвующими тренерами, площадками и аудиториями 
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsCourses> GetFullDefinedCoursesByCourseType(int idCourseType)
      //  //    {
      //  //        if (!(idCourseType > 0))
      //  //            return GetFullDefinedCourses();
      //  //        var result = new List<TrainingsCourses>();
      //  //        foreach (var course in DB.TrainingsCoursesActive)
      //  //        {
      //  //            if(course.TrainingsCoursesAuditoriums.Count > 0)
      //  //                if(course.TrainingsCoursesPlaces.Count > 0)
      //  //                    if(course.TrainingsCoursesTrainers.Count > 0)
      //  //                        if(course.TrainingsCoursesAndTypes.Count > 0)
      //  //                        {
      //  //                            foreach (var type in course.TrainingsCoursesAndTypes)
      //  //                            {
      //  //                                if(type.IdTraningCoursesType == idCourseType)
      //  //                                    result.Add(course);
      //  //                            }
      //  //                        }
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список активных выездных курсов с присутсвующими тренерами, площадками и аудиториями
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsCourses> GetFullDefinedRemoteCourses()
      //  //    {
      //  //        var result = new List<TrainingsCourses>();
      //  //        foreach (var course in DB.TrainingsCoursesActive)
      //  //        {
      //  //            if (course.IsRemote)
      //  //                if (course.TrainingsCoursesTrainers.Count > 0)
      //  //                    if (course.TrainingsCoursesPlaces.Count > 0)
      //  //                        if (course.TrainingsCoursesAuditoriums.Count > 0)
      //  //                            if(course.TrainingsCoursesAndTypes.Count > 0)
      //  //                                result.Add(course);
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить тренера по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsCourse">Id тренера</param>
      //  //    /// <returns>площадка</returns>
      //  //    public static TrainingsCourses GetTrainingsCoursebyId(int idTrainingsCourse)
      //  //    {
      //  //        TrainingsCourses _result = null;
      //  //        foreach (TrainingsCourses trainingsCourse in TrainingsCourses)
      //  //        {
      //  //            if (trainingsCourse.IdTrainingsCourse == idTrainingsCourse)
      //  //            {
      //  //                _result = trainingsCourse;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление тренера
      //  //    /// </summary>
      //  //    /// <param name="trainingsCourseItem">тренер</param>
      //  //    public static void TrainingsCoursesUpdate(TrainingsCourses trainingsCourseItem)
      //  //    {
      //  //        if (trainingsCourseItem != null)
      //  //        {
      //  //            TrainingsCourses trainingsCourseUpdate = GetTrainingsCoursebyId(trainingsCourseItem.IdTrainingsCourse);
      //  //            if (trainingsCourseUpdate != null)
      //  //            {
      //  //                trainingsCourseUpdate.IsActive = trainingsCourseItem.IsActive;
      //  //                trainingsCourseUpdate.IdRubric = trainingsCourseItem.IdRubric;
      //  //                trainingsCourseUpdate.Name = trainingsCourseItem.Name;
      //  //                trainingsCourseUpdate.LinkToFeedBack = trainingsCourseItem.LinkToFeedBack;
      //  //                trainingsCourseUpdate.LinkToMaterial = trainingsCourseItem.LinkToMaterial;
      //  //                trainingsCourseUpdate.LinkToProgramm = trainingsCourseItem.LinkToProgramm;
      //  //                trainingsCourseUpdate.Description = trainingsCourseItem.Description;
      //  //                //trainingsCourseUpdate.IdTrainingCoursesType = trainingsCourseItem.IdTrainingCoursesType;
      //  //                trainingsCourseUpdate.Duration = trainingsCourseItem.Duration;
      //  //                trainingsCourseUpdate.ParticipantCount = trainingsCourseItem.ParticipantCount;
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление тренера
      //  //    /// </summary>
      //  //    /// <param name="trainingsCourseItem">тренер</param>
      //  //    public static int TrainingsCoursesInsert(TrainingsCourses trainingsCourseItem)
      //  //    {
      //  //        Entities.TrainingsCourses.Add(trainingsCourseItem);
      //  //        DB.Save();
      //  //        return trainingsCourseItem.IdTrainingsCourse;
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление курса
      //  //    /// </summary>
      //  //    /// <param name="trainingsCourseItem">курс</param>
      //  //    public static void TrainingsCoursesDelete(TrainingsCourses trainingsCourseItem)
      //  //    {
      //  //        if (trainingsCourseItem != null)
      //  //        {
      //  //            //удаление привязок курса к тренерам
      //  //            var trainersList = DB.GetTrainingsTrainersListByCourse(trainingsCourseItem);
      //  //            if (trainersList != null)
      //  //            {
      //  //                foreach (var item in trainersList)
      //  //                    if (item != null)
      //  //                        DB.TrainingsCoursesDelTrainer(trainingsCourseItem, item);
      //  //            }
      //  //            DB.Save();
      //  //            //удаление привязок курса к площадкам
      //  //            var placesList = DB.GetTrainingsPlacesListByCourse(trainingsCourseItem);
      //  //            if (placesList != null)
      //  //            {
      //  //                foreach (var item in placesList)
      //  //                {
      //  //                    if (item != null)
      //  //                        DB.TrainingsCoursesDelPlace(trainingsCourseItem, item);
      //  //                }
      //  //            }
      //  //            DB.Save();
      //  //            //удаление привязок курса к целевым аудиториям
      //  //            var auditoriumsList = DB.GetTrainingsAuditoriumsListByCourse(trainingsCourseItem);
      //  //            if (auditoriumsList != null)
      //  //            {
      //  //                foreach (var item in auditoriumsList)
      //  //                {
      //  //                    if (item != null)
      //  //                        DB.TrainingsCoursesDelAuditorium(trainingsCourseItem, item);
      //  //                }
      //  //            }
      //  //            DB.Save();

      //  //            //удаление привязок курса к типам курсов
      //  //            var coursesTypesList = DB.GetTrainingsCoursesTypesByCourseId(trainingsCourseItem.IdTrainingsCourse);
      //  //            if(coursesTypesList!=null)
      //  //            {
      //  //                foreach (var item in coursesTypesList)
      //  //                {
      //  //                    if(item!=null)
      //  //                        DB.TrainingsCoursesDelTypes(trainingsCourseItem, item);
      //  //                }
      //  //            }
      //  //            DB.Save();

      //  //            //удаление курса
      //  //            //TrainingsCourses.Remove(trainingsCourseItem);
      //  //            TrainingsCourses trainingsCoursesDel = GetTrainingsCoursebyId(trainingsCourseItem.IdTrainingsCourse);
      //  //            if (trainingsCoursesDel != null)
      //  //            {
      //  //                Entities.TrainingsCourses.Remove(Entities.TrainingsCourses.FirstOrDefault(c => c.IdTrainingsCourse == trainingsCoursesDel.IdTrainingsCourse));
      //  //                //Save();
      //  //            }
      //  //            DB.Save();
      //  //        }
      //  //        //DB.Save();

      //  //        // --- Старый код, ХЗ кем написан изначально
      //  //        //if (trainingsCourseItem != null)
      //  //        //{
      //  //        //    TrainingsCourses trainingsCourseDel = GetTrainingsCoursebyId(trainingsCourseItem.IdTrainingsCourse);
      //  //        //    if (trainingsCourseDel != null)
      //  //        //    {
      //  //        //        TrainingsCourses.Remove(trainingsCourseDel);
      //  //        //        DB.Save();
      //  //        //    }
      //  //        //}
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление к новому курсу списка тренеров
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="trainersList"></param>
      //  //    public static void TrainingsCoursesAddTrainers(TrainingsCourses courseItem, List<TrainingsTrainers> trainersList)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (trainersList != null)
      //  //            {
      //  //                foreach (var trainer in trainersList)
      //  //                {
      //  //                    var tctItem = new TrainingsCoursesTrainers
      //  //                                        {
      //  //                                            IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                                            IdTrainingsTrainer = trainer.IdTrainingsTrainer
      //  //                                        };
      //  //                    DB.TrainingsCoursesTrainersInsert(tctItem);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// 
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="typesList"></param>
      //  //    public static void TrainingsCoursesAddCoursesTypes(TrainingsCourses courseItem, List<TrainingCoursesTypes> typesList)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (typesList != null)
      //  //            {
      //  //                foreach (var item in typesList)
      //  //                {
      //  //                    var tcatItem = new TrainingsCoursesAndTypes()
      //  //                    {
      //  //                        IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                        IdTraningCoursesType = item.IdTrainingCoursesType
      //  //                    };
      //  //                    DB.TrainingsCoursesAndTypesInsert(tcatItem);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавляет привязку тренера к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="trainer"></param>
      //  //    public static void TrainingsCoursesAddTrainer(TrainingsCourses courseItem, TrainingsTrainers trainer)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (trainer != null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesTrainers)
      //  //                {
      //  //                    if (item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTrainingsTrainer == trainer.IdTrainingsTrainer)
      //  //                        return;
      //  //                }
      //  //                var tctItem = new TrainingsCoursesTrainers
      //  //                                    {
      //  //                                        IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                                        IdTrainingsTrainer = trainer.IdTrainingsTrainer
      //  //                                    };
      //  //                DB.TrainingsCoursesTrainersInsert(tctItem);
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаляет привязку тренера к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="trainer"></param>
      //  //    public static void TrainingsCoursesDelTrainer(TrainingsCourses courseItem, TrainingsTrainers trainer)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (trainer != null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesTrainers)
      //  //                {
      //  //                    if (item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTrainingsTrainer == trainer.IdTrainingsTrainer)
      //  //                        DB.TrainingsCoursesTrainersDelete(item);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление в базе к курсу списка площадок
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="placesList"></param>
      //  //    public static void TrainingsCoursesAddPlaces(TrainingsCourses courseItem, List<TrainingsPlaces> placesList)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (placesList != null)
      //  //            {
      //  //                foreach (var placeItem in placesList)
      //  //                {
      //  //                    var tcpItem = new TrainingsCoursesPlaces
      //  //                                      {
      //  //                                          IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                                          IdTrainingsPlace = placeItem.IdTrainingsPlace
      //  //                                      };
      //  //                    DB.TrainingsCoursesPlacesInsert(tcpItem);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление площадки к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="place"></param>
      //  //    public static void TrainingsCoursesAddPlace(TrainingsCourses courseItem, TrainingsPlaces place)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (place != null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesPlaces)
      //  //                {
      //  //                    if (item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTrainingsPlace == place.IdTrainingsPlace)
      //  //                        return;
      //  //                }
      //  //                var tcpItem = new TrainingsCoursesPlaces
      //  //                {
      //  //                    IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                    IdTrainingsPlace = place.IdTrainingsPlace
      //  //                };
      //  //                DB.TrainingsCoursesPlacesInsert(tcpItem);
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаляет привязку площадки к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="place"></param>
      //  //    public static void TrainingsCoursesDelPlace(TrainingsCourses courseItem, TrainingsPlaces place)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (place != null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesPlaces)
      //  //                {
      //  //                    if (item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTrainingsPlace == place.IdTrainingsPlace)
      //  //                        DB.TrainingsCoursesPlacesDelete(item);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление в базе к курсу списка целевых аудиторий
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="auditoriumsList"></param>
      //  //    public static void TrainingsCoursesAddAuditoriums(TrainingsCourses courseItem, List<TrainingsAuditoriums> auditoriumsList)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (auditoriumsList != null)
      //  //            {
      //  //                foreach (var audItem in auditoriumsList)
      //  //                {
      //  //                    var tcaItem = new TrainingsCoursesAuditoriums
      //  //                                      {
      //  //                                          IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                                          IdTrainingsAuditorium = audItem.IdTrainingsAuditorium
      //  //                                      };
      //  //                    DB.TrainingsCoursesAuditoriumsInsert(tcaItem);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление целевую аудиторию к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="auditorium"></param>
      //  //    public static void TrainingsCoursesAddAuditorium(TrainingsCourses courseItem, TrainingsAuditoriums auditorium)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (auditorium != null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesAuditoriums)
      //  //                {
      //  //                    if (item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTrainingsAuditorium == auditorium.IdTrainingsAuditorium)
      //  //                        return;
      //  //                }
      //  //                var tcaItem = new TrainingsCoursesAuditoriums
      //  //                {
      //  //                    IdTrainingsCourse = courseItem.IdTrainingsCourse,
      //  //                    IdTrainingsAuditorium = auditorium.IdTrainingsAuditorium
      //  //                };
      //  //                DB.TrainingsCoursesAuditoriumsInsert(tcaItem);
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаляет привязку целевой аудитории к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="auditorium"></param>
      //  //    public static void TrainingsCoursesDelAuditorium(TrainingsCourses courseItem, TrainingsAuditoriums auditorium)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (auditorium != null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesAuditoriums)
      //  //                {
      //  //                    if (item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTrainingsAuditorium == auditorium.IdTrainingsAuditorium)
      //  //                        DB.TrainingsCoursesAuditoriumsDelete(item);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаляет привязку типа курса к курсу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="type"></param>
      //  //    public static void TrainingsCoursesDelTypes(TrainingsCourses courseItem, TrainingCoursesTypes type)
      //  //    {
      //  //        if(courseItem!=null)
      //  //            if(type!=null)
      //  //            {
      //  //                foreach (var item in DB.TrainingsCoursesAndTypes)
      //  //                {
      //  //                    if(item.IdTrainingsCourse == courseItem.IdTrainingsCourse && item.IdTraningCoursesType == type.IdTrainingCoursesType)
      //  //                        DB.TrainingsCoursesAndTypesDelete(item);
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Редактирование привязанного списка тренеров к курсу в базе
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="trainersListUpdated"></param>
      //  //    public static void TrainingsCoursesEditTrainers(TrainingsCourses courseItem, List<TrainingsTrainers> trainersListUpdated)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (trainersListUpdated != null)
      //  //            {
      //  //                //получение старого списка тренеров
      //  //                var trainersList = DB.GetTrainingsTrainersListByCourse(courseItem);
      //  //                if (trainersList != null)
      //  //                {
      //  //                    //добавление новых тренеров к списку, если они там отсутствуют
      //  //                    foreach (var item in trainersListUpdated)
      //  //                    {
      //  //                        if (!trainersList.Contains(item))
      //  //                        {
      //  //                            DB.TrainingsCoursesAddTrainer(courseItem, item);
      //  //                        }
      //  //                    }
      //  //                    //Удаление тренеров, которых нет в обновленном списке
      //  //                    foreach (var item in trainersList)
      //  //                    {
      //  //                        if (!trainersListUpdated.Contains(item))
      //  //                        {
      //  //                            DB.TrainingsCoursesDelTrainer(courseItem, item);
      //  //                        }
      //  //                    }
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Редактирование привязанного списка площадок к курсу и сохранение в базу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="placesListUpdated"></param>
      //  //    public static void TrainingsCoursesEditPlaces(TrainingsCourses courseItem, List<TrainingsPlaces> placesListUpdated)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (placesListUpdated != null)
      //  //            {
      //  //                //получение старого списка площадок
      //  //                var trainersList = DB.GetTrainingsPlacesListByCourse(courseItem);
      //  //                if (trainersList != null)
      //  //                {
      //  //                    //добавление новых площадок к списку, если они там отсутствуют
      //  //                    foreach (var item in placesListUpdated)
      //  //                    {
      //  //                        if (!trainersList.Contains(item))
      //  //                        {
      //  //                            DB.TrainingsCoursesAddPlace(courseItem, item);
      //  //                        }
      //  //                    }
      //  //                    //Удаление площадок, которых нет в обновленном списке
      //  //                    foreach (var item in trainersList)
      //  //                    {
      //  //                        if (!placesListUpdated.Contains(item))
      //  //                        {
      //  //                            DB.TrainingsCoursesDelPlace(courseItem, item);
      //  //                        }
      //  //                    }
      //  //                }
      //  //            }
      //  //    }

      //  //    /// <summary>
      //  //    /// Редактирование привязанного списка целевых аудиторий к курсу и сохранение в базу
      //  //    /// </summary>
      //  //    /// <param name="courseItem"></param>
      //  //    /// <param name="auditoriumsListUpdated"></param>
      //  //    public static void TrainingsCoursesEditAuditoriums(TrainingsCourses courseItem, List<TrainingsAuditoriums> auditoriumsListUpdated)
      //  //    {
      //  //        if (courseItem != null)
      //  //            if (auditoriumsListUpdated != null)
      //  //            {
      //  //                //получение старого списка аудиторий
      //  //                var auditoriumsList = DB.GetTrainingsAuditoriumsListByCourse(courseItem);
      //  //                if (auditoriumsList != null)
      //  //                {
      //  //                    //добавление новых целевых аудиторий к списку, если они там отсутствуют
      //  //                    foreach (var item in auditoriumsListUpdated)
      //  //                    {
      //  //                        if (!auditoriumsList.Contains(item))
      //  //                        {
      //  //                            DB.TrainingsCoursesAddAuditorium(courseItem, item);
      //  //                        }
      //  //                    }
      //  //                    //Удаление целевых аудиторий, которых нет в обновленном списке
      //  //                    foreach (var item in auditoriumsList)
      //  //                    {
      //  //                        if (!auditoriumsListUpdated.Contains(item))
      //  //                        {
      //  //                            DB.TrainingsCoursesDelAuditorium(courseItem, item);
      //  //                        }
      //  //                    }
      //  //                }
      //  //            }
      //  //    }

      //  //    public static List<TrainingsTrainers> GetTrainingsTrainersListByCourseId(int courseId)
      //  //    {
      //  //        var courseItem = DB.GetTrainingsCoursebyId(courseId);
      //  //        if (courseItem != null)
      //  //        {
      //  //            List<TrainingsTrainers> result = DB.GetTrainingsTrainersListByCourse(courseItem);
      //  //            return result;
      //  //        }
      //  //        return null;
      //  //    }

      //  //    public static List<TrainingsPlaces> GetTrainingsPlacesListByCourseId(int courseId)
      //  //    {
      //  //        var courseItem = DB.GetTrainingsCoursebyId(courseId);
      //  //        if (courseItem != null)
      //  //        {
      //  //            var result = DB.GetTrainingsPlacesListByCourse(courseItem);
      //  //            return result;
      //  //        }
      //  //        return null;
      //  //    }

      //  //#endregion

      //  //#region TrainingsCoursesTrainers - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список площадок
      //  //    /// </summary>
      //  //    public static List<TrainingsCoursesTrainers> TrainingsCoursesTrainers
      //  //    {
      //  //        get { return Entities.TrainingsCoursesTrainers.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить площадку по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsCoursesTrainer">Id площадки</param>
      //  //    /// <returns>площадка</returns>
      //  //    public static TrainingsCoursesTrainers GetTrainingsCoursesTrainerbyId(int idTrainingsCoursesTrainer)
      //  //    {
      //  //        TrainingsCoursesTrainers _result = null;
      //  //        foreach (TrainingsCoursesTrainers trainingsCoursesTrainer in TrainingsCoursesTrainers)
      //  //        {
      //  //            if (trainingsCoursesTrainer.IdTrainingsCoursesTrainers == idTrainingsCoursesTrainer)
      //  //            {
      //  //                _result = trainingsCoursesTrainer;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление площадки
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesTrainerItem">площадка</param>
      //  //    public static void TrainingsCoursesTrainersUpdate(TrainingsCoursesTrainers trainingsCoursesTrainerItem)
      //  //    {
      //  //        if (trainingsCoursesTrainerItem != null)
      //  //        {
      //  //            TrainingsCoursesTrainers trainingsCoursesTrainerUpdate = GetTrainingsCoursesTrainerbyId(trainingsCoursesTrainerItem.IdTrainingsCoursesTrainers);
      //  //            if (trainingsCoursesTrainerUpdate != null)
      //  //            {
      //  //                trainingsCoursesTrainerUpdate.IdTrainingsCourse = trainingsCoursesTrainerItem.IdTrainingsCourse;
      //  //                trainingsCoursesTrainerUpdate.IdTrainingsTrainer = trainingsCoursesTrainerItem.IdTrainingsTrainer;
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление площадки
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesTrainerItem">площадка</param>
      //  //    public static void TrainingsCoursesTrainersInsert(TrainingsCoursesTrainers trainingsCoursesTrainerItem)
      //  //    {
      //  //        Entities.TrainingsCoursesTrainers.Add(trainingsCoursesTrainerItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление площадки
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesTrainerItem">площадка</param>
      //  //    public static void TrainingsCoursesTrainersDelete(TrainingsCoursesTrainers trainingsCoursesTrainerItem)
      //  //    {
      //  //        if (trainingsCoursesTrainerItem != null)
      //  //        {
      //  //            TrainingsCoursesTrainers trainingsCoursesTrainerDel = GetTrainingsCoursesTrainerbyId(trainingsCoursesTrainerItem.IdTrainingsCoursesTrainers);
      //  //            if (trainingsCoursesTrainerDel != null)
      //  //            {
      //  //                var obj =
      //  //                    Entities.TrainingsCoursesTrainers.FirstOrDefault(
      //  //                        c => c.IdTrainingsCoursesTrainers == trainingsCoursesTrainerDel.IdTrainingsCoursesTrainers);
      //  //                Entities.TrainingsCoursesTrainers.Remove(obj);
      //  //                //Save();
      //  //            }
      //  //        }
      //  //    }

      //  //#endregion

      //  //#region TrainingsCoursesPlaces - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список городов
      //  //    /// </summary>
      //  //    public static List<TrainingsCoursesPlaces> TrainingsCoursesPlaces
      //  //    {
      //  //        get { return Entities.TrainingsCoursesPlaces.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить город по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsCoursesPlace">Id города</param>
      //  //    /// <returns>город</returns>
      //  //    public static TrainingsCoursesPlaces GetTrainingsCoursesPlacebyId(int idTrainingsCoursesPlace)
      //  //    {
      //  //        TrainingsCoursesPlaces _result = null;
      //  //        foreach (TrainingsCoursesPlaces trainingsCoursesPlace in TrainingsCoursesPlaces)
      //  //        {
      //  //            if (trainingsCoursesPlace.IdTrainingsCoursesPlaces == idTrainingsCoursesPlace)
      //  //            {
      //  //                _result = trainingsCoursesPlace;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление города
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesPlaceItem">город</param>
      //  //    public static void TrainingsCoursesPlacesUpdate(TrainingsCoursesPlaces trainingsCoursesPlaceItem)
      //  //    {
      //  //        if (trainingsCoursesPlaceItem != null)
      //  //        {
      //  //            TrainingsCoursesPlaces trainingsCoursesPlaceUpdate =
      //  //                GetTrainingsCoursesPlacebyId(trainingsCoursesPlaceItem.IdTrainingsCoursesPlaces);
      //  //            if (trainingsCoursesPlaceUpdate != null)
      //  //            {
      //  //                trainingsCoursesPlaceUpdate.IdTrainingsCourse = trainingsCoursesPlaceItem.IdTrainingsCourse;
      //  //                trainingsCoursesPlaceUpdate.IdTrainingsPlace = trainingsCoursesPlaceItem.IdTrainingsPlace;
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление города
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesPlaceItem">город</param>
      //  //    public static void TrainingsCoursesPlacesInsert(TrainingsCoursesPlaces trainingsCoursesPlaceItem)
      //  //    {
      //  //        Entities.TrainingsCoursesPlaces.Add(trainingsCoursesPlaceItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление города
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesPlaceItem">город</param>
      //  //    public static void TrainingsCoursesPlacesDelete(TrainingsCoursesPlaces trainingsCoursesPlaceItem)
      //  //    {
      //  //        if (trainingsCoursesPlaceItem != null)
      //  //        {
      //  //            var trainingsCoursesPlaceDel = GetTrainingsCoursesPlacebyId(trainingsCoursesPlaceItem.IdTrainingsCoursesPlaces);
      //  //            if (trainingsCoursesPlaceDel != null)
      //  //            {
      //  //                //TrainingsCoursesPlaces.Remove(trainingsCoursesPlaceDel);
      //  //                //DB.Save();
      //  //                Entities.TrainingsCoursesPlaces.Remove(Entities.TrainingsCoursesPlaces.FirstOrDefault(c => c.IdTrainingsCoursesPlaces == trainingsCoursesPlaceDel.IdTrainingsCoursesPlaces));
      //  //            }
      //  //        }
      //  //    }

      //  //#endregion

      //  //#region TrainingsCoursesAuditoriums - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список городов
      //  //    /// </summary>
      //  //    public static List<TrainingsCoursesAuditoriums> TrainingsCoursesAuditoriums
      //  //    {
      //  //        get { return Entities.TrainingsCoursesAuditoriums.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить город по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsCoursesAuditorium">Id города</param>
      //  //    /// <returns>город</returns>
      //  //    public static TrainingsCoursesAuditoriums GetTrainingsCoursesAuditoriumbyId(int idTrainingsCoursesAuditorium)
      //  //    {
      //  //        TrainingsCoursesAuditoriums _result = null;
      //  //        foreach (TrainingsCoursesAuditoriums trainingsCoursesAuditorium in TrainingsCoursesAuditoriums)
      //  //        {
      //  //            if (trainingsCoursesAuditorium.IdTrainingsCoursesAuditoriums == idTrainingsCoursesAuditorium)
      //  //            {
      //  //                _result = trainingsCoursesAuditorium;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление города
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesAuditoriumItem">город</param>
      //  //    public static void TrainingsCoursesAuditoriumsUpdate(TrainingsCoursesAuditoriums trainingsCoursesAuditoriumItem)
      //  //    {
      //  //        if (trainingsCoursesAuditoriumItem != null)
      //  //        {
      //  //            TrainingsCoursesAuditoriums trainingsCoursesAuditoriumUpdate =
      //  //                GetTrainingsCoursesAuditoriumbyId(trainingsCoursesAuditoriumItem.IdTrainingsCoursesAuditoriums);
      //  //            if (trainingsCoursesAuditoriumUpdate != null)
      //  //            {
      //  //                trainingsCoursesAuditoriumUpdate.IdTrainingsCourse = trainingsCoursesAuditoriumItem.IdTrainingsCourse;
      //  //                trainingsCoursesAuditoriumUpdate.IdTrainingsAuditorium = trainingsCoursesAuditoriumItem.IdTrainingsAuditorium;
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление города
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesAuditoriumItem">город</param>
      //  //    public static void TrainingsCoursesAuditoriumsInsert(TrainingsCoursesAuditoriums trainingsCoursesAuditoriumItem)
      //  //    {
      //  //        Entities.TrainingsCoursesAuditoriums.Add(trainingsCoursesAuditoriumItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление города
      //  //    /// </summary>
      //  //    /// <param name="trainingsCoursesAuditoriumItem">город</param>
      //  //    public static void TrainingsCoursesAuditoriumsDelete(TrainingsCoursesAuditoriums trainingsCoursesAuditoriumItem)
      //  //        {
      //  //            if (trainingsCoursesAuditoriumItem != null)
      //  //            {
      //  //                TrainingsCoursesAuditoriums trainingsCoursesAuditoriumDel = GetTrainingsCoursesAuditoriumbyId(trainingsCoursesAuditoriumItem.IdTrainingsCoursesAuditoriums);
      //  //                if (trainingsCoursesAuditoriumDel != null)
      //  //                {
      //  //                    //TrainingsCoursesAuditoriums.Remove(trainingsCoursesAuditoriumDel);
      //  //                    //DB.Save();
      //  //                    Entities.TrainingsCoursesAuditoriums.Remove(Entities.TrainingsCoursesAuditoriums.FirstOrDefault(c => c.IdTrainingsCoursesAuditoriums == trainingsCoursesAuditoriumDel.IdTrainingsCoursesAuditoriums));
      //  //                }
      //  //            }
      //  //        }

      //  //#endregion

      //  //#region TrainingsCoursesAndTypes - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список связей курсов с типами курсов
      //  //    /// </summary>
      //  //    public static List<TrainingsCoursesAndTypes> TrainingsCoursesAndTypes
      //  //    {
      //  //        get { return Entities.TrainingsCoursesAndTypes.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получение связи курса с типом курса по Id
      //  //    /// </summary>
      //  //    /// <param name="id"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsCoursesAndTypes GetTrainingsCoursesAndTypesById(int id)
      //  //    {
      //  //        TrainingsCoursesAndTypes result = null;
      //  //        foreach (TrainingsCoursesAndTypes item in TrainingsCoursesAndTypes)
      //  //        {
      //  //            if (item.IdTrainingsCoursesAndTypes == id)
      //  //            {
      //  //                result = item;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //    public static void TrainingsCoursesAndTypesUpdate(TrainingsCoursesAndTypes item)
      //  //    {
      //  //        if (item != null)
      //  //        {
      //  //            var itemUpdate = GetTrainingsCoursesAndTypesById(item.IdTrainingsCoursesAndTypes);
      //  //            if (itemUpdate != null)
      //  //            {
      //  //                itemUpdate.IdTrainingsCourse = item.IdTrainingsCourse;
      //  //                itemUpdate.IdTraningCoursesType = item.IdTraningCoursesType;
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    public static void TrainingsCoursesAndTypesInsert(TrainingsCoursesAndTypes item)
      //  //    {
      //  //        Entities.TrainingsCoursesAndTypes.Add(item);
      //  //        DB.Save();
      //  //    }

      //  //    public static void TrainingsCoursesAndTypesDelete(TrainingsCoursesAndTypes item)
      //  //    {
      //  //        if (item != null)
      //  //        {
      //  //            var itemDel = GetTrainingsCoursesAndTypesById(item.IdTrainingsCoursesAndTypes);
      //  //            if (itemDel != null)
      //  //            {
      //  //                var obj = Entities.TrainingsCoursesAndTypes.FirstOrDefault(c => c.IdTrainingsCoursesAndTypes == itemDel.IdTrainingsCoursesAndTypes);
      //  //                Entities.TrainingsCoursesAndTypes.Remove(obj);
      //  //                //Save();
      //  //            }
      //  //        }
      //  //    }

      //  //#endregion

      //  //#region TrainingsSchedules - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Расписание учебных курсов
      //  //    /// </summary>
      //  //    public static List<TrainingsSchedules> TrainingsSchedules
      //  //    {
      //  //        get { return Entities.TrainingsSchedules.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить рубрику по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsSchedule">Id рубрики</param>
      //  //    /// <returns>рубрика</returns>
      //  //    public static TrainingsSchedules GetTrainingsSchedulebyId(int idTrainingsSchedule)
      //  //    {
      //  //        TrainingsSchedules _result = null;
      //  //        foreach (TrainingsSchedules trainingsSchedule in TrainingsSchedules)
      //  //        {
      //  //            if (trainingsSchedule.IdTrainingsSchedule == idTrainingsSchedule)
      //  //            {
      //  //                _result = trainingsSchedule;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление рубрик
      //  //    /// </summary>
      //  //    /// <param name="trainingsScheduleItem">рубрика</param>
      //  //    public static void TrainingsSchedulesUpdate(TrainingsSchedules trainingsScheduleItem)
      //  //    {
      //  //        if (trainingsScheduleItem != null)
      //  //        {
      //  //            TrainingsSchedules trainingsScheduleUpdate = GetTrainingsSchedulebyId(trainingsScheduleItem.IdTrainingsSchedule);
      //  //            if (trainingsScheduleUpdate != null)
      //  //            {
      //  //                trainingsScheduleUpdate.IdTrainingsCource = trainingsScheduleItem.IdTrainingsCource;
      //  //                trainingsScheduleUpdate.PlannedDate = trainingsScheduleItem.PlannedDate;
      //  //                trainingsScheduleUpdate.IdProfineRegion = trainingsScheduleItem.IdProfineRegion;
      //  //                trainingsScheduleUpdate.IdProfineRegion = trainingsScheduleItem.IdProfineRegion;
      //  //                trainingsScheduleUpdate.IdTrainingsPlace = trainingsScheduleItem.IdTrainingsPlace;
      //  //                trainingsScheduleUpdate.IdTrainingsTrainer = trainingsScheduleItem.IdTrainingsTrainer;
      //  //                trainingsScheduleUpdate.CourseCost = trainingsScheduleItem.CourseCost;
      //  //                trainingsScheduleUpdate.ParticipantCost = trainingsScheduleItem.ParticipantCost;
      //  //                trainingsScheduleUpdate.CountAvailable = trainingsScheduleItem.CountAvailable;
      //  //                trainingsScheduleUpdate.CountRequested = trainingsScheduleItem.CountRequested;
      //  //                trainingsScheduleUpdate.CountApproved = trainingsScheduleItem.CountApproved;
      //  //                trainingsScheduleUpdate.CountActual = trainingsScheduleItem.CountActual;
      //  //                trainingsScheduleUpdate.IdTrainingCoursesStatus = trainingsScheduleItem.IdTrainingCoursesStatus;
      //  //                trainingsScheduleUpdate.IdTrainingsCity = trainingsScheduleItem.IdTrainingsCity;


      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление рубрики
      //  //    /// </summary>
      //  //    /// <param name="trainingsSchedulesItem">рубрика</param>
      //  //    public static void TrainingsSchedulesInsert(TrainingsSchedules trainingsSchedulesItem)
      //  //    {
      //  //        //trainingsSchedulesItem.IdSettlement = DB.Settlements.First().IdSettlement;
      //  //        trainingsSchedulesItem.IdProfineRegion = DB.profineRegions.First().IdProfineRegion;

      //  //        Entities.TrainingsSchedules.Add(trainingsSchedulesItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление рубрики
      //  //    /// </summary>
      //  //    /// <param name="trainingsScheduleItem">рубрика</param>
      //  //    public static void TrainingsSchedulesDelete(TrainingsSchedules trainingsScheduleItem)
      //  //    {
      //  //        if (trainingsScheduleItem != null)
      //  //        {
      //  //            TrainingsSchedules trainingsScheduleDel = GetTrainingsSchedulebyId(trainingsScheduleItem.IdTrainingsSchedule);
      //  //            if (trainingsScheduleDel != null)
      //  //            {
      //  //               Entities.TrainingsSchedules.Remove(trainingsScheduleDel);
                    
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список расписаний, c активными курсами заданного типа 
      //  //    /// </summary>
      //  //    /// <param name="courseType"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsSchedules> GetTrainingsSchedulesByCourseType(int courseType)
      //  //    {
      //  //        var schedulesList = new List<TrainingsSchedules>();
      //  //        foreach (var item in TrainingsSchedules)
      //  //        {
      //  //            if (item.TrainingsCourses != null)
      //  //                if (item.IdTrainingCoursesType == courseType)
      //  //                    if (item.IdTrainingCoursesStatus == 3)
      //  //                        schedulesList.Add(item);
      //  //        }
      //  //        return schedulesList;
      //  //    }

      //  //#endregion

      //  //#region TrainingsCenters - MOVED

      //  ///// <summary>
      //  ///// Список центров обучения
      //  ///// </summary>
      //  //public static List<TrainingsCenters> TrainingsCenters
      //  //{
      //  //    get { return Entities.TrainingsCenters.ToList(); }
      //  //}

      //  ///// <summary>
      //  ///// Активные центры обучения
      //  ///// </summary>
      //  //public static IEnumerable<TrainingsCenters> TrainingsCentersActive
      //  //{
      //  //    get
      //  //    {
      //  //        return
      //  //            TrainingsCenters.Where(p => p.IsActive).Where(q => q.TrainingsCentersTypes.IsActive == true);
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Получить центр обучени по Id
      //  ///// </summary>
      //  ///// <param name="idTrainingsCenter">Id центра обучения</param>
      //  ///// <returns>заявка на обучение</returns>
      //  //public static TrainingsCenters GetTrainingsCenterbyId(int idTrainingsCenter)
      //  //{
      //  //    TrainingsCenters _result = null;
      //  //    foreach (TrainingsCenters trainingsCenter in TrainingsCenters)
      //  //    {
      //  //        if (trainingsCenter.IdTrainingsCenter == idTrainingsCenter)
      //  //        {
      //  //            _result = trainingsCenter;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  ///// <summary>
      //  ///// Обновление центра обучения
      //  ///// </summary>
      //  ///// <param name="trainingsCenterItem">центр обучения</param>
      //  //public static void TrainingsCentersUpdate(TrainingsCenters trainingsCenterItem)
      //  //{
      //  //    if (trainingsCenterItem != null)
      //  //    {
      //  //        TrainingsCenters trainingsCenterUpdate = GetTrainingsCenterbyId(trainingsCenterItem.IdTrainingsCenter);
      //  //        if (trainingsCenterUpdate != null)
      //  //        {
      //  //            trainingsCenterUpdate.IsActive = trainingsCenterItem.IsActive;
      //  //            trainingsCenterUpdate.NameRu = trainingsCenterItem.NameRu;
      //  //            trainingsCenterUpdate.IdTrainingsCentersType = trainingsCenterItem.IdTrainingsCentersType;
      //  //            trainingsCenterUpdate.Phone = trainingsCenterItem.Phone;
      //  //            trainingsCenterUpdate.Email = trainingsCenterItem.Email;
      //  //            trainingsCenterUpdate.CommentsEn = trainingsCenterItem.CommentsEn;
      //  //            trainingsCenterUpdate.CommentsRu = trainingsCenterItem.CommentsRu;

      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Добавление центра обучения
      //  ///// </summary>
      //  ///// <param name="trainingsCenterItem">центр обучения</param>
      //  //public static void TrainingsCentersInsert(TrainingsCenters trainingsCenterItem)
      //  //{
      //  //    DB.FillTrainingsCenter(trainingsCenterItem);
      //  //    Entities.TrainingsCenters.Add(trainingsCenterItem);
      //  //    DB.Save();
      //  //}

      //  ///// <summary>
      //  ///// Удаление центра обучения
      //  ///// </summary>
      //  ///// <param name="trainingsCenterItem">центр обучения</param>
      //  //public static void TrainingsCentersDelete(TrainingsCenters trainingsCenterItem)
      //  //{
      //  //    if (trainingsCenterItem != null)
      //  //    {
      //  //        TrainingsCenters trainingsCenterDel = GetTrainingsCenterbyId(trainingsCenterItem.IdTrainingsCenter);
      //  //        if (trainingsCenterDel != null)
      //  //        {
      //  //            Entities.TrainingsCenters.Remove(trainingsCenterDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Заполняет нулевые значения пустыми стороками
      //  ///// </summary>
      //  ///// <param name="item"></param>
      //  //public static void FillTrainingsCenter(TrainingsCenters item)
      //  //{
      //  //    if (item.CommentsRu == null)
      //  //        item.CommentsRu = "";
      //  //    if (item.CommentsEn == null)
      //  //        item.CommentsEn = "";
      //  //    if (item.NameRu == null)
      //  //        item.NameRu = "";
      //  //    if (item.Phone == null)
      //  //        item.Phone = "";
      //  //    if (item.Email == null)
      //  //        item.Email = "";
      //  //}

      //  //#endregion

      //  //#region TrainingsAuditoriums - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список целевых аудиторий
      //  //    /// </summary>
      //  //    public static List<TrainingsAuditoriums> TrainingsAuditoriums
      //  //    {
      //  //        get { return Entities.TrainingsAuditoriums.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Активные цлевые аудитории
      //  //    /// </summary>
      //  //    public static IEnumerable<TrainingsAuditoriums> TrainingsAuditoriumsActive
      //  //    {
      //  //        get
      //  //        {
      //  //            return
      //  //                TrainingsAuditoriums.Where(p => p.IsActive);
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получение локализованного списка значений
      //  //    /// </summary>
      //  //    /// <param name="culture"></param>
      //  //    /// <returns></returns>
      //  //    public static List<LocalizedListItem> GetLocalizedTrainingsAuditoriumsNames(string culture)
      //  //    {
      //  //        List<LocalizedListItem> result = null;
      //  //        foreach (TrainingsAuditoriums item in TrainingsAuditoriums)
      //  //        {
      //  //            if (result == null) result = new List<LocalizedListItem>();
      //  //            var listItem = new LocalizedListItem();
      //  //            listItem.Id = item.IdTrainingsAuditorium;
      //  //            listItem.ParentCollection = TrainingsAuditoriums;
      //  //            if (culture.Contains("ru"))
      //  //            {
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //            }
      //  //            else
      //  //            {
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //            }
      //  //            result.Add(listItem);
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить список целевых аудиторий по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainigAuditorium">Id целевой аудитории</param>
      //  //    /// <returns>целевая аудитория</returns>
      //  //    public static TrainingsAuditoriums GetTrainingsAuditoriumbyId(int idTrainigAuditorium)
      //  //    {
      //  //        TrainingsAuditoriums _result = null;
      //  //        foreach (TrainingsAuditoriums trainigAuditorium in TrainingsAuditoriums)
      //  //        {
      //  //            if (trainigAuditorium.IdTrainingsAuditorium == idTrainigAuditorium)
      //  //            {
      //  //                _result = trainigAuditorium;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление целевых аудиторий
      //  //    /// </summary>
      //  //    /// <param name="trainigAuditoriumItem">целевая аудитория</param>
      //  //    public static void TrainingsAuditoriumsUpdate(TrainingsAuditoriums trainigAuditoriumItem)
      //  //    {
      //  //        if (trainigAuditoriumItem != null)
      //  //        {
      //  //            TrainingsAuditoriums trainigAuditoriumUpdate = GetTrainingsAuditoriumbyId(trainigAuditoriumItem.IdTrainingsAuditorium);
      //  //            if (trainigAuditoriumUpdate != null)
      //  //            {
      //  //                trainigAuditoriumUpdate.IsActive = trainigAuditoriumItem.IsActive;
      //  //                trainigAuditoriumUpdate.NameEn = trainigAuditoriumItem.NameEn;
      //  //                trainigAuditoriumUpdate.NameRu = trainigAuditoriumItem.NameRu;
      //  //                DB.FillAuditorium(trainigAuditoriumUpdate);
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление целевых аудиторий
      //  //    /// </summary>
      //  //    /// <param name="trainigAuditoriumItem">целевая аудитория</param>
      //  //    public static void TrainingsAuditoriumsInsert(TrainingsAuditoriums trainigAuditoriumItem)
      //  //    {
      //  //        DB.FillAuditorium(trainigAuditoriumItem);
      //  //        Entities.TrainingsAuditoriums.Add(trainigAuditoriumItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление целевых аудиторий
      //  //    /// </summary>
      //  //    /// <param name="trainigAuditoriumItem">целевая аудитория</param>
      //  //    public static void TrainingsAuditoriumsDelete(TrainingsAuditoriums trainigAuditoriumItem)
      //  //    {
      //  //        if (trainigAuditoriumItem != null)
      //  //        {
      //  //            TrainingsAuditoriums trainigAuditoriumDel =
      //  //                GetTrainingsAuditoriumbyId(trainigAuditoriumItem.IdTrainingsAuditorium);
      //  //            if (trainigAuditoriumDel != null)
      //  //            {
      //  //                Entities.TrainingsAuditoriums.Remove(trainigAuditoriumDel);
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Заполняет нулевые строки пробелами
      //  //    /// </summary>
      //  //    /// <param name="item"></param>
      //  //    public static void FillAuditorium(TrainingsAuditoriums item)
      //  //    {
      //  //        if (item.NameRu == null)
      //  //            item.NameRu = "";
      //  //        if (item.NameEn == null)
      //  //            item.NameEn = "";
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить целевую аудиторию по названию
      //  //    /// </summary>
      //  //    /// <param name="auditorium"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsAuditoriums GetTrainingsAuditoriumbyName(string auditorium)
      //  //    {
      //  //        if (!String.IsNullOrEmpty(auditorium))
      //  //        {
      //  //            foreach (var item in TrainingsAuditoriums)
      //  //            {
      //  //                if (item.NameRu.Trim() == auditorium.Trim())
      //  //                {
      //  //                    return item;
      //  //                }
      //  //            }
      //  //        }
      //  //        return null;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список аудиторий, где на первом месте "Выбрать всех"
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsAuditoriums> GetTrainingsAuditoriumsForDropDownList()
      //  //    {
      //  //        var result = new List<TrainingsAuditoriums>();
      //  //        var selectAllItem = new TrainingsAuditoriums { NameRu = "Выбрать всех", NameEn = "Select All" };
      //  //        result.Add(selectAllItem);
      //  //        result.AddRange(DB.TrainingsAuditoriums.OrderBy(p => p.NameRu));
      //  //        return result;
      //  //    }
            
      //  //    /// <summary>
      //  //    /// Возвращает список, где на первом месте "Выбрать всех"
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingCoursesTypes> GetTrainingsCoursesTypesForDropDownList()
      //  //    {
      //  //        var result = new List<TrainingCoursesTypes>();
      //  //        var selectAllItem = new TrainingCoursesTypes { NameRu = "Выбрать всех", NameEn = "Select All" };
      //  //        result.Add(selectAllItem);
      //  //        result.AddRange(DB.TrainingCoursesTypes.OrderBy(p => p.NameRu));
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить список аудиторий из строки, разделенной сепараторами
      //  //    /// </summary>
      //  //    /// <param name="auditoriumStr"></param>
      //  //    /// <param name="separatorStr"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsAuditoriums> GetAuditoriumsFromString(string auditoriumStr, char separatorStr = ';')
      //  //    {
      //  //        var result = new List<TrainingsAuditoriums>();
      //  //        new TrainingsAuditoriums();
      //  //        var trainersArray = auditoriumStr.Split(separatorStr);
      //  //        foreach (var item in trainersArray)
      //  //        {
      //  //            var auditoriumItem = DB.GetTrainingsAuditoriumbyName(item.Trim());
      //  //            if (auditoriumItem != null)
      //  //            {
      //  //                result.Add(auditoriumItem);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список целевых аудиторий, привязанных к курсу
      //  //    /// </summary>
      //  //    /// <param name="course"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsAuditoriums> GetTrainingsAuditoriumsListByCourse(TrainingsCourses course)
      //  //    {
      //  //        var result = new List<TrainingsAuditoriums>();
      //  //        foreach (var item in DB.TrainingsCoursesAuditoriums)
      //  //        {
      //  //            if (item.IdTrainingsCourse == course.IdTrainingsCourse)
      //  //            {
      //  //                var auditorium = DB.GetTrainingsAuditoriumbyId(item.IdTrainingsAuditorium);
      //  //                if (auditorium != null)
      //  //                    result.Add(auditorium);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //#endregion

      //  //#region TrainingsPlaces - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список площадок
      //  //    /// </summary>
      //  //    public static List<TrainingsPlaces> TrainingsPlaces
      //  //    {
      //  //        get { return Entities.TrainingsPlaces.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Активные площадки
      //  //    /// </summary>
      //  //    public static IEnumerable<TrainingsPlaces> TrainingsPlacesActive
      //  //    {
      //  //        get
      //  //        {
      //  //            return
      //  //                TrainingsPlaces.Where(p => p.IsActive).Where(q => q.TrainingsCenters.IsActive);
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получение локализованного списка значений
      //  //    /// </summary>
      //  //    /// <param name="culture"></param>
      //  //    /// <returns></returns>
      //  //    public static List<LocalizedListItem> GetLocalizedTrainingsPlacesNames(string culture)
      //  //    {
      //  //        List<LocalizedListItem> result = null;
      //  //        foreach (TrainingsPlaces item in TrainingsPlaces)
      //  //        {
      //  //            if (result == null) result = new List<LocalizedListItem>();
      //  //            var listItem = new LocalizedListItem();
      //  //            listItem.Id = item.IdTrainingsPlace;
      //  //            listItem.ParentCollection = TrainingsPlaces;
      //  //            if (culture.Contains("ru"))
      //  //            {
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //            }
      //  //            else
      //  //            {
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //            }
      //  //            result.Add(listItem);
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить площадку по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsPlace">Id площадки</param>
      //  //    /// <returns>площадка</returns>
      //  //    public static TrainingsPlaces GetTrainingsPlacebyId(int idTrainingsPlace)
      //  //    {
      //  //        TrainingsPlaces _result = null;
      //  //        foreach (TrainingsPlaces trainingsPlace in TrainingsPlaces)
      //  //        {
      //  //            if (trainingsPlace.IdTrainingsPlace == idTrainingsPlace)
      //  //            {
      //  //                _result = trainingsPlace;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление площадки
      //  //    /// </summary>
      //  //    /// <param name="trainingsPlaceItem">площадка</param>
      //  //    public static void TrainingsPlacesUpdate(TrainingsPlaces trainingsPlaceItem)
      //  //    {
      //  //        if (trainingsPlaceItem != null)
      //  //        {
      //  //            TrainingsPlaces trainingsPlaceUpdate = GetTrainingsPlacebyId(trainingsPlaceItem.IdTrainingsPlace);
      //  //            if (trainingsPlaceUpdate != null)
      //  //            {
      //  //                trainingsPlaceUpdate.IsActive = trainingsPlaceItem.IsActive;
      //  //                trainingsPlaceUpdate.NameEn = trainingsPlaceItem.NameEn;
      //  //                trainingsPlaceUpdate.NameRu = trainingsPlaceItem.NameRu;
      //  //                trainingsPlaceUpdate.CommentsEn = trainingsPlaceItem.CommentsEn;
      //  //                trainingsPlaceUpdate.CommentsRu = trainingsPlaceItem.CommentsRu;
      //  //                trainingsPlaceUpdate.IdTrainingsCenter = trainingsPlaceItem.IdTrainingsCenter;
      //  //                trainingsPlaceUpdate.Capacity = trainingsPlaceItem.Capacity;
      //  //                trainingsPlaceUpdate.Address = trainingsPlaceItem.Address;
      //  //                trainingsPlaceUpdate.AcceptanceFileName = trainingsPlaceItem.AcceptanceFileName;
      //  //                DB.FillTrainingsPlace(trainingsPlaceUpdate);
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Заполняет нулевые значения пустыми строками
      //  //    /// </summary>
      //  //    /// <param name="trainingsPlaceItem"></param>
      //  //    public static void FillTrainingsPlace(TrainingsPlaces trainingsPlaceItem)
      //  //    {
      //  //        if (trainingsPlaceItem.CommentsRu == null)
      //  //            trainingsPlaceItem.CommentsRu = "";
      //  //        if (trainingsPlaceItem.CommentsEn == null)
      //  //            trainingsPlaceItem.CommentsEn = "";
      //  //        if (trainingsPlaceItem.NameRu == null)
      //  //            trainingsPlaceItem.NameRu = "";
      //  //        if (trainingsPlaceItem.NameEn == null)
      //  //            trainingsPlaceItem.NameEn = "";
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление площадки
      //  //    /// </summary>
      //  //    /// <param name="trainingsPlaceItem">площадка</param>
      //  //    public static void TrainingsPlacesInsert(TrainingsPlaces trainingsPlaceItem)
      //  //    {
      //  //        DB.FillTrainingsPlace(trainingsPlaceItem);
      //  //        Entities.TrainingsPlaces.Add(trainingsPlaceItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление площадки
      //  //    /// </summary>
      //  //    /// <param name="trainingsPlaceItem">площадка</param>
      //  //    public static void TrainingsPlacesDelete(TrainingsPlaces trainingsPlaceItem)
      //  //    {
      //  //        if (trainingsPlaceItem != null)
      //  //        {
      //  //            TrainingsPlaces trainingsPlaceDel = GetTrainingsPlacebyId(trainingsPlaceItem.IdTrainingsPlace);
      //  //            if (trainingsPlaceDel != null)
      //  //            {
      //  //                Entities.TrainingsPlaces.Remove(trainingsPlaceDel);
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// 
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsPlaces> GetTrainingsPlacesForDropDownList()
      //  //    {
      //  //        var result = new List<TrainingsPlaces>();
      //  //        var selectAllItem = new TrainingsPlaces { NameRu = "Выбрать всех", NameEn = "Select All" };
      //  //        result.Add(selectAllItem);
      //  //        result.AddRange(DB.TrainingsPlaces.OrderBy(p => p.NameRu));
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// 
      //  //    /// </summary>
      //  //    /// <param name="placeStr"></param>
      //  //    /// <param name="separatorStr"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsPlaces> GetPlacesFromString(string placeStr, char separatorStr = ';')
      //  //    {
      //  //        var result = new List<TrainingsPlaces>();
      //  //        new TrainingsPlaces();
      //  //        var trainersArray = placeStr.Split(separatorStr);
      //  //        foreach (var item in trainersArray)
      //  //        {
      //  //            var placeItem = DB.GetTrainingsPlacebyName(item.Trim());
      //  //            if (placeItem != null)
      //  //            {
      //  //                result.Add(placeItem);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// 
      //  //    /// </summary>
      //  //    /// <param name="placeStr"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsPlaces GetTrainingsPlacebyName(string placeStr)
      //  //    {
      //  //        foreach (var item in DB.TrainingsPlaces)
      //  //        {
      //  //            if (item.NameRu.Trim() == placeStr.Trim())
      //  //            {
      //  //                return item;
      //  //            }
      //  //        }
      //  //        return null;
      //  //    }

      //  //    /// <summary>
      //  //    /// Получает список площадок курса
      //  //    /// </summary>
      //  //    /// <param name="course"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsPlaces> GetTrainingsPlacesListByCourse(TrainingsCourses course)
      //  //    {
      //  //        var result = new List<TrainingsPlaces>();
      //  //        foreach (var item in DB.TrainingsCoursesPlaces)
      //  //        {
      //  //            if (item.IdTrainingsCourse == course.IdTrainingsCourse)
      //  //            {
      //  //                var place = DB.GetTrainingsPlacebyId(item.IdTrainingsPlace);
      //  //                if (place != null)
      //  //                    result.Add(place);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //#endregion

      //  //#region TrainingsTrainers - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Список тренеров
      //  //    /// </summary>
      //  //    public static List<TrainingsTrainers> TrainingsTrainers
      //  //    {
      //  //        get { return Entities.TrainingsTrainers.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Активные тренеры
      //  //    /// </summary>
      //  //    public static IEnumerable<TrainingsTrainers> TrainingsTrainersActive
      //  //    {
      //  //        get
      //  //        {
      //  //            return
      //  //                TrainingsTrainers.Where(p => p.IsActive).Where(q => q.TrainingsCenters.IsActive);
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить тренера по Id
      //  //    /// </summary>
      //  //    /// <param name="idTrainingsTrainer">Id тренера</param>
      //  //    /// <returns>площадка</returns>
      //  //    public static TrainingsTrainers GetTrainingsTrainerbyId(int idTrainingsTrainer)
      //  //    {
      //  //        TrainingsTrainers _result = null;
      //  //        foreach (TrainingsTrainers trainingsTrainer in TrainingsTrainers)
      //  //        {
      //  //            if (trainingsTrainer.IdTrainingsTrainer == idTrainingsTrainer)
      //  //            {
      //  //                _result = trainingsTrainer;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление тренера
      //  //    /// </summary>
      //  //    /// <param name="trainingsTrainerItem">тренер</param>
      //  //    public static void TrainingsTrainersUpdate(TrainingsTrainers trainingsTrainerItem)
      //  //    {
      //  //        if (trainingsTrainerItem != null)
      //  //        {
      //  //            TrainingsTrainers trainingsTrainerUpdate =
      //  //                GetTrainingsTrainerbyId(trainingsTrainerItem.IdTrainingsTrainer);
      //  //            if (trainingsTrainerUpdate != null)
      //  //            {
      //  //                trainingsTrainerUpdate.IsActive = trainingsTrainerItem.IsActive;
      //  //                trainingsTrainerUpdate.IdTrainingsCenter = trainingsTrainerItem.IdTrainingsCenter;
      //  //                trainingsTrainerUpdate.Name = trainingsTrainerItem.Name;
      //  //                trainingsTrainerUpdate.Phone = trainingsTrainerItem.Phone;
      //  //                trainingsTrainerUpdate.Email = trainingsTrainerItem.Email;
      //  //                trainingsTrainerUpdate.CommentsEn = trainingsTrainerItem.CommentsEn;
      //  //                trainingsTrainerUpdate.CommentsRu = trainingsTrainerItem.CommentsRu;

      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление тренера
      //  //    /// </summary>
      //  //    /// <param name="trainingsTrainerItem">тренер</param>
      //  //    public static void TrainingsTrainersInsert(TrainingsTrainers trainingsTrainerItem)
      //  //    {
      //  //        DB.FillTrainingsTrainer(trainingsTrainerItem);
      //  //        Entities.TrainingsTrainers.Add(trainingsTrainerItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление тренера
      //  //    /// </summary>
      //  //    /// <param name="trainingsTrainerItem">тренер</param>
      //  //    public static void TrainingsTrainersDelete(TrainingsTrainers trainingsTrainerItem)
      //  //    {
      //  //        if (trainingsTrainerItem != null)
      //  //        {
      //  //            TrainingsTrainers trainingsTrainerDel = GetTrainingsTrainerbyId(trainingsTrainerItem.IdTrainingsTrainer);
      //  //            if (trainingsTrainerDel != null)
      //  //            {
      //  //                Entities.TrainingsTrainers.Remove(trainingsTrainerDel);
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// заполняет нулевые значения пустыми строками
      //  //    /// </summary>
      //  //    /// <param name="item"></param>
      //  //    public static void FillTrainingsTrainer(TrainingsTrainers item)
      //  //    {
      //  //        if (item.Name == null)
      //  //            item.Name = "";
      //  //        if (item.Phone == null)
      //  //            item.Phone = "";
      //  //        if (item.CommentsRu == null)
      //  //            item.CommentsRu = "";
      //  //        if (item.CommentsEn == null)
      //  //            item.CommentsEn = "";
      //  //        if (item.Email == null)
      //  //            item.Email = "";
      //  //    }

      //  //    /// <summary>
      //  //    /// Формируес список тренеров с первым именем "Выбрать всех"
      //  //    /// </summary>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsTrainers> GetTrainingsTrainersForDropDownList()
      //  //    {
      //  //        var result = new List<TrainingsTrainers>();
      //  //        var selectAllItem = new TrainingsTrainers { Name = "Выбрать всех" };
      //  //        result.Add(selectAllItem);
      //  //        result.AddRange(DB.TrainingsTrainers.OrderBy(p => p.Name));
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Формирует список тренеров из строки тренеров, разделенных сепаратором
      //  //    /// </summary>
      //  //    /// <param name="trainersStr"></param>
      //  //    /// <param name="separatorStr"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsTrainers> GetTrainersFromString(string trainersStr, char separatorStr = ';')
      //  //    {
      //  //        var result = new List<TrainingsTrainers>();
      //  //        new TrainingsTrainers();
      //  //        var trainersArray = trainersStr.Split(separatorStr);
      //  //        foreach (var item in trainersArray)
      //  //        {
      //  //            TrainingsTrainers trainerItem = DB.GetTrainingsTrainerbyName(item.Trim());
      //  //            if (trainerItem != null)
      //  //            {
      //  //                result.Add(trainerItem);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает тренера по имени (обрезая начальный и конечный пробел)
      //  //    /// </summary>
      //  //    /// <param name="trainerStr"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsTrainers GetTrainingsTrainerbyName(string trainerStr)
      //  //    {
      //  //        foreach (var trainer in DB.TrainingsTrainers)
      //  //        {
      //  //            if (trainer.Name.Trim() == trainerStr.Trim())
      //  //            {
      //  //                return trainer;
      //  //            }
      //  //        }
      //  //        return null;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список тренеров, привязанных к курсу
      //  //    /// </summary>
      //  //    /// <param name="course"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsTrainers> GetTrainingsTrainersListByCourse(TrainingsCourses course)
      //  //    {
      //  //        var result = new List<TrainingsTrainers>();
      //  //        foreach (var item in DB.TrainingsCoursesTrainers)
      //  //        {
      //  //            if (item.IdTrainingsCourse == course.IdTrainingsCourse)
      //  //            {
      //  //                var trainer = DB.GetTrainingsTrainerbyId(item.IdTrainingsTrainer);
      //  //                if (trainer != null)
      //  //                    result.Add(trainer);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //#endregion

      //  //#region TrainingsCentersTypes - MOVED

      //  /////// <summary>
      //  /////// Список типов учебных центров
      //  /////// </summary>
      //  ////public static List<TrainingsCentersTypes> TrainingsCentersTypes
      //  ////{
      //  ////    get { return Entities.TrainingsCentersTypes.ToList(); }
      //  ////}

      //  /////// <summary>
      //  /////// Активные учебные центры
      //  /////// </summary>
      //  ////public static IEnumerable<TrainingsCentersTypes> TrainingsCentersTypesActive
      //  ////{
      //  ////    get
      //  ////    {
      //  ////        return
      //  ////            TrainingsCentersTypes.Where(p => p.IsActive == true);
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Получение локализованного списка значений
      //  /////// </summary>
      //  /////// <param name="culture"></param>
      //  /////// <returns></returns>
      //  ////public static List<LocalizedListItem> GetLocalizedTrainingsCentersTypesNames(string culture)
      //  ////{
      //  ////    List<LocalizedListItem> result = null;
      //  ////    foreach (TrainingsCentersTypes item in TrainingsCentersTypes)
      //  ////    {
      //  ////        if (result == null) result = new List<LocalizedListItem>();
      //  ////        var listItem = new LocalizedListItem();
      //  ////        listItem.Id = item.IdTrainingsCentersType;
      //  ////        listItem.ParentCollection = TrainingsCentersTypes;
      //  ////        if (culture.Contains("ru"))
      //  ////        {
      //  ////            listItem.LocaLizedString = item.TypeNameRu;
      //  ////        }
      //  ////        else
      //  ////        {
      //  ////            listItem.LocaLizedString = item.TypeNameEn;
      //  ////        }
      //  ////        result.Add(listItem);
      //  ////    }
      //  ////    return result;
      //  ////}

      //  /////// <summary>
      //  /////// Получить тип учебного центра по Id
      //  /////// </summary>
      //  /////// <param name="idTrainingsCentersType">Id типа учебного центра</param>
      //  /////// <returns>площадка</returns>
      //  ////public static TrainingsCentersTypes GetTrainingsCentersTypebyId(int idTrainingsCentersType)
      //  ////{
      //  ////    TrainingsCentersTypes _result = null;
      //  ////    foreach (TrainingsCentersTypes trainingsCentersType in TrainingsCentersTypes)
      //  ////    {
      //  ////        if (trainingsCentersType.IdTrainingsCentersType == idTrainingsCentersType)
      //  ////        {
      //  ////            _result = trainingsCentersType;
      //  ////            break;
      //  ////        }
      //  ////    }
      //  ////    return _result;
      //  ////}

      //  /////// <summary>
      //  /////// Обновление типа учебного цетнра
      //  /////// </summary>
      //  /////// <param name="trainingsCentersTypeItem">тип уебного центра</param>
      //  ////public static void TrainingsCentersTypesUpdate(TrainingsCentersTypes trainingsCentersTypeItem)
      //  ////{
      //  ////    if (trainingsCentersTypeItem != null)
      //  ////    {
      //  ////        TrainingsCentersTypes trainingsCentersTypeUpdate =
      //  ////            GetTrainingsCentersTypebyId(trainingsCentersTypeItem.IdTrainingsCentersType);
      //  ////        if (trainingsCentersTypeUpdate != null)
      //  ////        {
      //  ////            trainingsCentersTypeUpdate.IsActive = trainingsCentersTypeItem.IsActive;
      //  ////            trainingsCentersTypeUpdate.TypeNameRu = trainingsCentersTypeItem.TypeNameRu;
      //  ////            trainingsCentersTypeUpdate.TypeNameEn = trainingsCentersTypeItem.TypeNameEn;

      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Добавление типа учебного цетнра
      //  /////// </summary>
      //  /////// <param name="trainingsCentersTypeItem">тип уебного центра</param>
      //  ////public static void TrainingsCentersTypesInsert(TrainingsCentersTypes trainingsCentersTypeItem)
      //  ////{
      //  ////    Entities.TrainingsCentersTypes.Add(trainingsCentersTypeItem);
      //  ////    DB.Save();
      //  ////}

      //  /////// <summary>
      //  /////// Удаление типа учебного цетнра
      //  /////// </summary>
      //  /////// <param name="trainingsCentersTypeItem">тип уебного центра</param>
      //  ////public static void TrainingsCentersTypesDelete(TrainingsCentersTypes trainingsCentersTypeItem)
      //  ////{
      //  ////    if (trainingsCentersTypeItem != null)
      //  ////    {
      //  ////        TrainingsCentersTypes trainingsCentersTypeDel =
      //  ////            GetTrainingsCentersTypebyId(trainingsCentersTypeItem.IdTrainingsCentersType);
      //  ////        if (trainingsCentersTypeDel != null)
      //  ////        {
      //  ////            Entities.TrainingsCentersTypes.Remove(trainingsCentersTypeDel);
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  //#endregion

      //  //#region TrainingsCities - MOVED

      //  /////// <summary>
      //  /////// Список городов
      //  /////// </summary>
      //  ////public static List<TrainingsCities> TrainingsCities
      //  ////{
      //  ////    get { return Entities.TrainingsCities.ToList(); }
      //  ////}

      //  /////// <summary>
      //  /////// Получить город по Id
      //  /////// </summary>
      //  /////// <param name="idTrainingsCity">Id города</param>
      //  /////// <returns>город</returns>
      //  ////public static TrainingsCities GetTrainingsCitybyId(int idTrainingsCity)
      //  ////{
      //  ////    TrainingsCities _result = null;
      //  ////    foreach (TrainingsCities trainingsCity in TrainingsCities)
      //  ////    {
      //  ////        if (trainingsCity.IdTrainingsCity == idTrainingsCity)
      //  ////        {
      //  ////            _result = trainingsCity;
      //  ////            break;
      //  ////        }
      //  ////    }
      //  ////    return _result;
      //  ////}

      //  /////// <summary>
      //  /////// Обновление города
      //  /////// </summary>
      //  /////// <param name="trainingsCityItem">город</param>
      //  ////public static void TrainingsCitiesUpdate(TrainingsCities trainingsCityItem)
      //  ////{
      //  ////    if (trainingsCityItem != null)
      //  ////    {
      //  ////        TrainingsCities trainingsCityUpdate =
      //  ////            GetTrainingsCitybyId(trainingsCityItem.IdTrainingsCity);
      //  ////        if (trainingsCityUpdate != null)
      //  ////        {
      //  ////            trainingsCityUpdate.TrainingsCityName = trainingsCityItem.TrainingsCityName;
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Добавление города
      //  /////// </summary>
      //  /////// <param name="trainingsCityItem">город</param>
      //  ////public static void TrainingsCitiesInsert(TrainingsCities trainingsCityItem)
      //  ////{
      //  ////    DB.FillTrainingCity(trainingsCityItem);
      //  ////    Entities.TrainingsCities.Add(trainingsCityItem);
      //  ////    DB.Save();
      //  ////}

      //  /////// <summary>
      //  /////// Удаление города
      //  /////// </summary>
      //  /////// <param name="trainingsCityItem">город</param>
      //  ////public static void TrainingsCitiesDelete(TrainingsCities trainingsCityItem)
      //  ////{
      //  ////    if (trainingsCityItem != null)
      //  ////    {
      //  ////        TrainingsCities trainingsCityDel = GetTrainingsCitybyId(trainingsCityItem.IdTrainingsCity);
      //  ////        if (trainingsCityDel != null)
      //  ////        {
      //  ////            Entities.TrainingsCities.Remove(trainingsCityDel);
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// заполняет нулевые значения пустыми строками
      //  /////// </summary>
      //  /////// <param name="item"></param>
      //  ////public static void FillTrainingCity(TrainingsCities item)
      //  ////{
      //  ////    if (item.TrainingsCityName == null)
      //  ////        item.TrainingsCityName = "";
      //  ////}

      //  //#endregion

      //  //#region TrainingCoursesTypes MOVED but not commented

      //  //    /// <summary>
      //  ///// Список типов учебных курсов
      //  ///// </summary>
      //  //    public static List<TrainingCoursesTypes> TrainingCoursesTypes
      //  //{
      //  //    get { return Entities.TrainingCoursesTypes.ToList(); }
      //  //}

      //  //    /// <summary>
      //  ///// Активные инструменты
      //  ///// </summary>
      //  //    public static IEnumerable<TrainingCoursesTypes> TrainingCoursesTypesActive
      //  //{
      //  //    get
      //  //    {
      //  //        return
      //  //            TrainingCoursesTypes.Where(p => p.IsActive);
      //  //    }
      //  //}

      //  //    /// <summary>
      //  ///// Получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //    public static List<LocalizedListItem> GetLocalizedTrainingCoursesTypesNames(string culture)
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (TrainingCoursesTypes item in TrainingCoursesTypes)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdTrainingCoursesType;
      //  //        listItem.ParentCollection = TrainingCoursesTypes;
      //  //        if (culture.Contains("ru"))
      //  //        {
      //  //            listItem.LocaLizedString = item.NameRu;
      //  //        }
      //  //        else
      //  //        {
      //  //            listItem.LocaLizedString = item.NameEn;
      //  //        }
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  //    /// <summary>
      //  ///// Получить список типов учебных курсов
      //  ///// </summary>
      //  ///// <param name="idTrainingCoursesType">Id списка учебного курса</param>
      //  ///// <returns>список типов учебных курсов</returns>
      //  //    public static TrainingCoursesTypes GetTrainingCoursesTypebyId(int idTrainingCoursesType)
      //  //{
      //  //    TrainingCoursesTypes _result = null;
      //  //    foreach (TrainingCoursesTypes trainingCoursesType in TrainingCoursesTypes)
      //  //    {
      //  //        if (trainingCoursesType.IdTrainingCoursesType == idTrainingCoursesType)
      //  //        {
      //  //            _result = trainingCoursesType;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  //    /// <summary>
      //  ///// Обновление списка типов учебных курсов
      //  ///// </summary>
      //  ///// <param name="trainingCoursesTypeItem">тип учебного курса</param>
      //  //    public static void TrainingCoursesTypesUpdate(TrainingCoursesTypes trainingCoursesTypeItem)
      //  //{
      //  //    if (trainingCoursesTypeItem != null)
      //  //    {
      //  //        TrainingCoursesTypes trainingCoursesTypeUpdate =
      //  //            GetTrainingCoursesTypebyId(trainingCoursesTypeItem.IdTrainingCoursesType);
      //  //        if (trainingCoursesTypeUpdate != null)
      //  //        {
      //  //            trainingCoursesTypeUpdate.IsActive = trainingCoursesTypeItem.IsActive;
      //  //            trainingCoursesTypeUpdate.NameEn = trainingCoursesTypeItem.NameEn;
      //  //            trainingCoursesTypeUpdate.NameRu = trainingCoursesTypeItem.NameRu;
      //  //            trainingCoursesTypeUpdate.DescriptionEn = trainingCoursesTypeItem.DescriptionEn;
      //  //            trainingCoursesTypeUpdate.DescriptionRu = trainingCoursesTypeItem.DescriptionRu;

      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  //    /// <summary>
      //  ///// Добавление списка типов учебных курсов
      //  ///// </summary>
      //  ///// <param name="trainingCoursesTypeItem">тип учебных курсов</param>
      //  //    public static void TrainingCoursesTypesInsert(TrainingCoursesTypes trainingCoursesTypeItem)
      //  //{
      //  //    DB.FillTrainingCoursesType(trainingCoursesTypeItem);
      //  //    Entities.TrainingCoursesTypes.Add(trainingCoursesTypeItem);
      //  //    DB.Save();
      //  //}

      //  //    /// <summary>
      //  ///// Удаление списка типов учебных курсов
      //  ///// </summary>
      //  ///// <param name="trainingCoursesTypeItem">группа продуктов</param>
      //  //    public static void TrainingCoursesTypesDelete(TrainingCoursesTypes trainingCoursesTypeItem)
      //  //{
      //  //    if (trainingCoursesTypeItem != null)
      //  //    {
      //  //        TrainingCoursesTypes trainingCoursesTypeDel =
      //  //            GetTrainingCoursesTypebyId(trainingCoursesTypeItem.IdTrainingCoursesType);
      //  //        if (trainingCoursesTypeDel != null)
      //  //        {
      //  //            Entities.TrainingCoursesTypes.Remove(trainingCoursesTypeDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  //    /// <summary>
      //  ///// Заполняет незаполненные значения пустыми строками
      //  ///// </summary>
      //  ///// <param name="item"></param>
      //  //    public static void FillTrainingCoursesType(TrainingCoursesTypes item)
      //  //{
      //  //    if (item.NameEn == null)
      //  //        item.NameEn = "";
      //  //    if (item.NameRu == null)
      //  //        item.NameRu = "";
      //  //    if (item.DescriptionRu == null)
      //  //        item.DescriptionRu = "";
      //  //    if (item.DescriptionEn == null)
      //  //        item.DescriptionEn = "";
      //  //}

      //  //    public static List<TrainingCoursesTypes> GetCoursesTypesFromString(string coursesTypesStr, char separatorStr = ';')
      //  //{
      //  //    var result = new List<TrainingCoursesTypes>();
      //  //    new TrainingCoursesTypes();
      //  //    var trainersArray = coursesTypesStr.Split(separatorStr);
      //  //    foreach (var item in trainersArray)
      //  //    {
      //  //        TrainingCoursesTypes trainerItem = DB.GetTrainingsCoursesTypeByName(item.Trim());
      //  //        if (trainerItem != null)
      //  //        {
      //  //            result.Add(trainerItem);
      //  //        }
      //  //    }
      //  //    return result;
      //  //}

      //  //    public static TrainingCoursesTypes GetTrainingsCoursesTypeByName(string str)
      //  //    {
      //  //        foreach (var item in DB.TrainingCoursesTypes)
      //  //        {
      //  //            if (item.NameRu.Trim() == str.Trim())
      //  //            {
      //  //                return item;
      //  //            }
      //  //        }
      //  //        return null;
      //  //    }

      //  //    public static List<TrainingCoursesTypes> GetTrainingsCoursesTypesByCourseId(int id)
      //  //    {
      //  //        var result = new List<TrainingCoursesTypes>();
      //  //        foreach (var item in DB.TrainingsCoursesAndTypes)
      //  //        {
      //  //            if(item.IdTrainingsCourse == id)
      //  //            {
      //  //                var courseType = DB.GetTrainingCoursesTypebyId(item.IdTraningCoursesType);
      //  //                if(courseType!=null)
      //  //                {
      //  //                    result.Add(courseType);
      //  //                }
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //#endregion

      //  //#region Rubrics - MOVED

      //  /////// <summary>
      //  /////// Список рубрик
      //  /////// </summary>
      //  ////public static List<Rubrics> Rubrics
      //  ////{
      //  ////    get { return Entities.Rubrics.ToList(); }
      //  ////}

      //  /////// <summary>
      //  /////// Активные рубрики
      //  /////// </summary>
      //  ////public static IEnumerable<Rubrics> RubricsActive
      //  ////{
      //  ////    get
      //  ////    {
      //  ////        return
      //  ////            Rubrics.Where(p => p.IsActive);
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Получение локализованного списка значений
      //  /////// </summary>
      //  /////// <param name="culture"></param>
      //  /////// <returns></returns>
      //  ////public static List<LocalizedListItem> GetLocalizedRubricsNames(string culture)
      //  ////{
      //  ////    List<LocalizedListItem> result = null;
      //  ////    foreach (Rubrics item in Rubrics)
      //  ////    {
      //  ////        if (result == null) result = new List<LocalizedListItem>();
      //  ////        var listItem = new LocalizedListItem();
      //  ////        listItem.Id = item.IdRubric;
      //  ////        listItem.ParentCollection = Rubrics;
      //  ////        if (culture.Contains("ru"))
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameRu;
      //  ////        }
      //  ////        else
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameEn;
      //  ////        }
      //  ////        result.Add(listItem);
      //  ////    }
      //  ////    return result;
      //  ////}

      //  /////// <summary>
      //  /////// Получить рубрику по Id
      //  /////// </summary>
      //  /////// <param name="idRubric">Id рубрики</param>
      //  /////// <returns>рубрика</returns>
      //  ////public static Rubrics GetRubricbyId(int idRubric)
      //  ////{
      //  ////    Rubrics _result = null;
      //  ////    foreach (Rubrics rubric in Rubrics)
      //  ////    {
      //  ////        if (rubric.IdRubric == idRubric)
      //  ////        {
      //  ////            _result = rubric;
      //  ////            break;
      //  ////        }
      //  ////    }
      //  ////    return _result;
      //  ////}

      //  /////// <summary>
      //  /////// Обновление рубрик
      //  /////// </summary>
      //  /////// <param name="rubricItem">рубрика</param>
      //  ////public static void RubricsUpdate(Rubrics rubricItem)
      //  ////{
      //  ////    if (rubricItem != null)
      //  ////    {
      //  ////        Rubrics rubricUpdate = GetRubricbyId(rubricItem.IdRubric);
      //  ////        if (rubricUpdate != null)
      //  ////        {
      //  ////            rubricUpdate.IsActive = rubricItem.IsActive;
      //  ////            rubricUpdate.NameEn = rubricItem.NameEn;
      //  ////            rubricUpdate.NameRu = rubricItem.NameRu;
      //  ////            rubricUpdate.DescriptionEn = rubricItem.DescriptionEn;
      //  ////            rubricUpdate.DescriptionRu = rubricItem.DescriptionRu;

      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Добавление рубрики
      //  /////// </summary>
      //  /////// <param name="rubricsItem">рубрика</param>
      //  ////public static void RubricsInsert(Rubrics rubricsItem)
      //  ////{
      //  ////    DB.FillRubric(rubricsItem);
      //  ////    Entities.Rubrics.Add(rubricsItem);
      //  ////    DB.Save();
      //  ////}

      //  /////// <summary>
      //  /////// Заполняет нулевые значения пробелами
      //  /////// </summary>
      //  /////// <param name="item"></param>
      //  ////public static void FillRubric(Rubrics item)
      //  ////{
      //  ////    if (item.NameRu == null)
      //  ////        item.NameRu = "";
      //  ////    if (item.NameEn == null)
      //  ////        item.NameEn = "";
      //  ////    if (item.DescriptionRu == null)
      //  ////        item.DescriptionRu = "";
      //  ////    if (item.DescriptionEn == null)
      //  ////        item.DescriptionEn = "";
      //  ////}

      //  /////// <summary>
      //  /////// Удаление рубрики
      //  /////// </summary>
      //  /////// <param name="rubricItem">рубрика</param>
      //  ////public static void RubricsDelete(Rubrics rubricItem)
      //  ////{
      //  ////    if (rubricItem != null)
      //  ////    {
      //  ////        Rubrics rubricDel = GetRubricbyId(rubricItem.IdRubric);
      //  ////        if (rubricDel != null)
      //  ////        {
      //  ////            Entities.Rubrics.Remove(rubricDel);
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  //#endregion

      //  //#region TrainingCoursesStatuses - MOVED

      //  /////// <summary>
      //  /////// Список статусов курсов
      //  /////// </summary>
      //  ////public static List<TrainingCoursesStatuses> TrainingCoursesStatuses
      //  ////{
      //  ////    get { return Entities.TrainingCoursesStatuses.ToList(); }
      //  ////}

      //  /////// <summary>
      //  /////// Активные статусы курсов
      //  /////// </summary>
      //  ////public static IEnumerable<TrainingCoursesStatuses> TrainingCoursesStatusesActive
      //  ////{
      //  ////    get
      //  ////    {
      //  ////        return
      //  ////            TrainingCoursesStatuses.Where(p => p.IsActive);
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Получение локализованного списка значений
      //  /////// </summary>
      //  /////// <param name="culture"></param>
      //  /////// <returns></returns>
      //  ////public static List<LocalizedListItem> GetLocalizedTrainingCoursesStatusesNames(string culture)
      //  ////{
      //  ////    List<LocalizedListItem> result = null;
      //  ////    foreach (TrainingCoursesStatuses item in TrainingCoursesStatuses)
      //  ////    {
      //  ////        if (result == null) result = new List<LocalizedListItem>();
      //  ////        var listItem = new LocalizedListItem();
      //  ////        listItem.Id = item.IdTrainingCoursesStatus;
      //  ////        listItem.ParentCollection = TrainingCoursesStatuses;
      //  ////        if (culture.Contains("ru"))
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameRu;
      //  ////        }
      //  ////        else
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameEn;
      //  ////        }
      //  ////        result.Add(listItem);
      //  ////    }
      //  ////    return result;
      //  ////}

      //  /////// <summary>
      //  /////// Получить список статусов курсов по Id
      //  /////// </summary>
      //  /////// <param name="idTrainingCoursesStatus">Id статуса курсов</param>
      //  /////// <returns>статус курсов</returns>
      //  ////public static TrainingCoursesStatuses GetTrainingCoursesStatusbyId(int idTrainingCoursesStatus)
      //  ////{
      //  ////    TrainingCoursesStatuses _result = null;
      //  ////    foreach (TrainingCoursesStatuses trainingCoursesStatus in TrainingCoursesStatuses)
      //  ////    {
      //  ////        if (trainingCoursesStatus.IdTrainingCoursesStatus == idTrainingCoursesStatus)
      //  ////        {
      //  ////            _result = trainingCoursesStatus;
      //  ////            break;
      //  ////        }
      //  ////    }
      //  ////    return _result;
      //  ////}

      //  /////// <summary>
      //  /////// Обновление списка статусов курсов
      //  /////// </summary>
      //  /////// <param name="trainingCoursesStatusItem">статус курсов</param>
      //  ////public static void TrainingCoursesStatusesUpdate(TrainingCoursesStatuses trainingCoursesStatusItem)
      //  ////{
      //  ////    if (trainingCoursesStatusItem != null)
      //  ////    {
      //  ////        TrainingCoursesStatuses trainingCoursesStatusUpdate =
      //  ////            GetTrainingCoursesStatusbyId(trainingCoursesStatusItem.IdTrainingCoursesStatus);
      //  ////        if (trainingCoursesStatusUpdate != null)
      //  ////        {
      //  ////            trainingCoursesStatusUpdate.IsActive = trainingCoursesStatusItem.IsActive;
      //  ////            trainingCoursesStatusUpdate.NameEn = trainingCoursesStatusItem.NameEn;
      //  ////            trainingCoursesStatusUpdate.NameRu = trainingCoursesStatusItem.NameRu;
      //  ////            trainingCoursesStatusUpdate.DescriptionEn = trainingCoursesStatusItem.DescriptionEn;
      //  ////            trainingCoursesStatusUpdate.DescriptionRu = trainingCoursesStatusItem.DescriptionRu;

      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Добавление статусов курсов
      //  /////// </summary>
      //  /////// <param name="trainingCoursesStatusItem">статус курсов</param>
      //  ////public static void TrainingCoursesStatusesInsert(TrainingCoursesStatuses trainingCoursesStatusItem)
      //  ////{
      //  ////    Entities.TrainingCoursesStatuses.Add(trainingCoursesStatusItem);
      //  ////    DB.Save();
      //  ////}

      //  /////// <summary>
      //  /////// Удаление статусов курсов
      //  /////// </summary>
      //  /////// <param name="trainingCoursesStatusItem">статус курсов</param>
      //  ////public static void TrainingCoursesStatusesDelete(TrainingCoursesStatuses trainingCoursesStatusItem)
      //  ////{
      //  ////    if (trainingCoursesStatusItem != null)
      //  ////    {
      //  ////        TrainingCoursesStatuses trainingCoursesStatusDel =
      //  ////            GetTrainingCoursesStatusbyId(trainingCoursesStatusItem.IdTrainingCoursesStatus);
      //  ////        if (trainingCoursesStatusDel != null)
      //  ////        {
      //  ////            Entities.TrainingCoursesStatuses.Remove(trainingCoursesStatusDel);
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Возвращает ID статуса курса в зависимости от даты
      //  /////// </summary>
      //  /////// <param name="date"></param>
      //  /////// <returns></returns>
      //  ////public static int GetCourseStatusIdByDate(DateTime date)
      //  ////{
      //  ////    if (date == new DateTime(1900, 1, 1))
      //  ////        return 1;
      //  ////    if (date > DateTime.Now)
      //  ////        return 3;
      //  ////    return 1;
      //  ////}

      //  //#endregion

      //  //#region TrainingsRequests - MOVED but not commented

      //  //    /// <summary>
      //  //    /// Расписание учебных курсов
      //  //    /// </summary>
      //  //    public static List<TrainingsRequests> TrainingsRequests
      //  //    {
      //  //        get { return Entities.TrainingsRequests.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает заявку по ID
      //  //    /// </summary>
      //  //    /// <param name="requestId"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsRequests GetTrainingsRequestesById(int requestId)
      //  //    {
      //  //        TrainingsRequests _result = null;
      //  //        foreach (TrainingsRequests trainigRequests in TrainingsRequests)
      //  //        {
      //  //            if (trainigRequests.IdTrainingsRequest == requestId)
      //  //            {
      //  //                _result = trainigRequests;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список заявок, прикрепленных к выбранному расписанию.
      //  //    /// </summary>
      //  //    /// <param name="scheduleId"></param>
      //  //    /// <returns>список заявок или null</returns>
      //  //    public static List<TrainingsRequests> GetTrainingsRequestesByScheduleId(int scheduleId)
      //  //    {
      //  //        var result = new List<TrainingsRequests>();
      //  //        foreach (var request in TrainingsRequests)
      //  //        {
      //  //            if (request.IdTrainingsSchedule == scheduleId)
      //  //                result.Add(request);
      //  //        }
      //  //        return result.Count == 0 ? null : result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление заявки в базу
      //  //    /// </summary>
      //  //    /// <param name="trainingsRequestsItem"></param>
      //  //    public static void TrainingsRequestsInsert(TrainingsRequests trainingsRequestsItem)
      //  //    {
      //  //        DB.FillTrainingsRequest(trainingsRequestsItem);
      //  //        Entities.TrainingsRequests.Add(trainingsRequestsItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление заявки
      //  //    /// </summary>
      //  //    /// <param name="trainingsRequestsItem"></param>
      //  //    public static void TrainingsRequestsUpdate(TrainingsRequests trainingsRequestsItem)
      //  //    {
      //  //        TrainingsRequests trainingsRequestsUpdate = DB.GetTrainingsRequestesById(trainingsRequestsItem.IdTrainingsRequest);
      //  //        if (trainingsRequestsUpdate != null)
      //  //        {
      //  //            trainingsRequestsUpdate.IdCustomer = trainingsRequestsItem.IdCustomer;
      //  //            trainingsRequestsUpdate.IdTrainingsCourse = trainingsRequestsItem.IdTrainingsCourse;
      //  //            trainingsRequestsUpdate.IdTrainingsRequestsStatus = trainingsRequestsItem.IdTrainingsRequestsStatus;
      //  //            trainingsRequestsUpdate.IdTrainingsSchedule = trainingsRequestsItem.IdTrainingsSchedule;
      //  //            trainingsRequestsUpdate.IdLegalEntity = trainingsRequestsItem.IdLegalEntity;
      //  //            trainingsRequestsUpdate.IdContact = trainingsRequestsItem.IdContact;
      //  //            trainingsRequestsUpdate.IdUser = trainingsRequestsItem.IdUser;
      //  //            trainingsRequestsUpdate.RequestDate = trainingsRequestsItem.RequestDate;
      //  //            trainingsRequestsUpdate.Company = trainingsRequestsItem.Company;
      //  //            trainingsRequestsUpdate.ContactName = trainingsRequestsItem.ContactName;
      //  //            trainingsRequestsUpdate.ContactPhone = trainingsRequestsItem.ContactPhone;
      //  //            trainingsRequestsUpdate.ContactEmail = trainingsRequestsItem.ContactEmail;
      //  //            trainingsRequestsUpdate.Comments = trainingsRequestsItem.Comments;
      //  //            trainingsRequestsUpdate.FirstDate = trainingsRequestsItem.FirstDate;
      //  //            trainingsRequestsUpdate.LastDate = trainingsRequestsItem.LastDate;
      //  //            trainingsRequestsUpdate.Reason = trainingsRequestsItem.Reason;
      //  //            trainingsRequestsUpdate.DateOfAcceptMail = trainingsRequestsItem.DateOfAcceptMail;
      //  //            trainingsRequestsUpdate.DateOfDeclineMail = trainingsRequestsItem.DateOfDeclineMail;
      //  //            trainingsRequestsUpdate.DateOfManagerMail = trainingsRequestsItem.DateOfManagerMail;
      //  //            trainingsRequestsUpdate.DateOfRegisterMail = trainingsRequestsItem.DateOfRegisterMail;
      //  //            DB.Save();
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление плановой заявки с участниками в базе.
      //  //    /// </summary>
      //  //    /// <param name="requestUpdate"></param>
      //  //    /// <param name="participantsListUpdate"></param>
      //  //    public static void TrainingsRequestUpdate(TrainingsRequests requestUpdate, List<TrainingsParticipants> participantsListUpdate)
      //  //    {
      //  //        //получить список участников заявки
      //  //        var oldList = DB.GetTrainingsParticipantsByRequest(requestUpdate);
      //  //        if (oldList != null)
      //  //        {
      //  //            //Лист ID участников на удаление
      //  //            var delIdList = new List<int>();
      //  //            //Лист ID обновленных участников
      //  //            var updateIdList = new List<int>();
      //  //            foreach (var item in participantsListUpdate)
      //  //            {
      //  //                if(item.IdTrainingsRequest > 0)
      //  //                    updateIdList.Add(item.IdTrainingsParticipant);
      //  //            }
                
      //  //            if (oldList.Count > 0)
      //  //            {
      //  //                foreach (var item in oldList)
      //  //                {
      //  //                    if(!updateIdList.Contains(item.IdTrainingsParticipant))
      //  //                    {
      //  //                        DB.TrainingsParticipantDelete(item);
      //  //                    }
      //  //                }
      //  //                ////удаление участников, отсутствующих в номос списке
      //  //                //foreach (var item in oldList)
      //  //                //{
      //  //                //    if (!participantsListUpdate.Contains(item))
      //  //                //    {
      //  //                //        //удалить участника
      //  //                //        //DB.TrainingsParticipantDelete(item);
      //  //                //    }
      //  //                //}
      //  //            }
      //  //        }

      //  //        foreach (var item in participantsListUpdate)
      //  //        {
      //  //            //обновить существующих участников
      //  //            if (item.IdTrainingsRequest > 0)
      //  //            {
      //  //                DB.TrainingsParticipantsUpdate(item);
      //  //            }

      //  //            //добавить новых участников к заявке
      //  //            if (item.IdTrainingsRequest == 0)
      //  //            {
      //  //                DB.TraningsParticipantsAddToRequest(item, requestUpdate.IdTrainingsRequest);
      //  //            }
      //  //        }

      //  //        //обновить заявку
      //  //        DB.TrainingsRequestsUpdate(requestUpdate);
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление заявки на обучение вместе со списком участников
      //  //    /// </summary>
      //  //    /// <param name="requestItem"></param>
      //  //    public static void TrainingsRequestsDelete(TrainingsRequests requestItem)
      //  //    {
      //  //        if (requestItem != null)
      //  //        {
      //  //            var participantsList = DB.GetTrainingsParticipantsByRequest(requestItem);
      //  //            if (participantsList != null)
      //  //            {
      //  //                foreach (var participant in participantsList)
      //  //                {
      //  //                    if (participant != null)
      //  //                        DB.TrainingsParticipantDelete(participant);
      //  //                }
      //  //            }
      //  //            Entities.TrainingsRequests.Remove(requestItem);
      //  //            DB.Save();
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Заполняет пустыми строками нулевые значения
      //  //    /// </summary>
      //  //    /// <param name="requestItem"></param>
      //  //    public static void FillTrainingsRequest(TrainingsRequests requestItem)
      //  //    {
      //  //        if (requestItem == null) return;
      //  //        if (requestItem.ContactName == null)
      //  //            requestItem.ContactName = "";
      //  //        if (requestItem.ContactPhone == null)
      //  //            requestItem.ContactPhone = "";
      //  //        if (requestItem.ContactEmail == null)
      //  //            requestItem.ContactEmail = "";
      //  //        if (requestItem.Comments == null)
      //  //            requestItem.Comments = "";
      //  //        if (requestItem.Company == null)
      //  //            requestItem.Company = "";
      //  //        if (requestItem.Reason == null)
      //  //            requestItem.Reason = "";
      //  //    }

      //  //    ///// <summary>
      //  //    ///// Проверяет наличие у клиента хотя бы одного правильно заполненного Юр. Лица с контактами для подачи заявки на обучение
      //  //    ///// </summary>
      //  //    ///// <param name="idCustomer"></param>
      //  //    ///// <returns></returns>
      //  //    //public static bool TrainingsRequestCustomerValidation(int idCustomer)
      //  //    //{
      //  //    //    var list = GetFullDefinedLegalEntitiesByCustomerId(idCustomer);
      //  //    //    return list.Count > 0;
      //  //    //}

      //  //    /// <summary>
      //  //    /// Получение списка заявок от одного клиента по ID клиента
      //  //    /// </summary>
      //  //    /// <param name="customerId"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsRequests> GetTrainingsRequestsByCustomerId(int customerId)
      //  //    {
      //  //        var result = new List<TrainingsRequests>();
      //  //        if (DB.TrainingsRequests!=null)
      //  //        {
      //  //            foreach (var request in DB.TrainingsRequests)
      //  //            {
      //  //                if (request.IdCustomer != null)
      //  //                    if (request.IdCustomer == customerId)
      //  //                        result.Add(request);
      //  //            }
      //  //        }
      //  //        return result;
      //  //    }

      //  //#endregion

      //  //#region TrainingRequestsStatuses - MOVED

      //  /////// <summary>
      //  /////// Список статус заявки на обучение
      //  /////// </summary>
      //  ////public static List<TrainingRequestsStatuses> TrainingRequestsStatuses
      //  ////{
      //  ////    get { return Entities.TrainingRequestsStatuses.ToList(); }
      //  ////}

      //  /////// <summary>
      //  /////// Активные статусы заявок на обучение
      //  /////// </summary>
      //  ////public static IEnumerable<TrainingRequestsStatuses> TrainingRequestsStatusesActive
      //  ////{
      //  ////    get
      //  ////    {
      //  ////        return
      //  ////            TrainingRequestsStatuses.Where(p => p.IsActive);
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Получение локализованного списка значений
      //  /////// </summary>
      //  /////// <param name="culture"></param>
      //  /////// <returns></returns>
      //  ////public static List<LocalizedListItem> GetLocalizedTrainingRequestsStatusesNames(string culture)
      //  ////{
      //  ////    List<LocalizedListItem> result = null;
      //  ////    foreach (TrainingRequestsStatuses item in TrainingRequestsStatuses)
      //  ////    {
      //  ////        if (result == null) result = new List<LocalizedListItem>();
      //  ////        var listItem = new LocalizedListItem();
      //  ////        listItem.Id = item.IdTrainingRequestsStatus;
      //  ////        listItem.ParentCollection = TrainingRequestsStatuses;
      //  ////        if (culture.Contains("ru"))
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameRu;
      //  ////        }
      //  ////        else
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameEn;
      //  ////        }
      //  ////        result.Add(listItem);
      //  ////    }
      //  ////    return result;
      //  ////}

      //  /////// <summary>
      //  /////// Получить статус заявки на обучение по Id
      //  /////// </summary>
      //  /////// <param name="idTrainingRequestsStatus">Id статуса заявки на обучение</param>
      //  /////// <returns>заявка на обучение</returns>
      //  ////public static TrainingRequestsStatuses GetTrainingRequestsStatusbyId(int idTrainingRequestsStatus)
      //  ////{
      //  ////    TrainingRequestsStatuses _result = null;
      //  ////    foreach (TrainingRequestsStatuses trainingRequestsStatus in TrainingRequestsStatuses)
      //  ////    {
      //  ////        if (trainingRequestsStatus.IdTrainingRequestsStatus == idTrainingRequestsStatus)
      //  ////        {
      //  ////            _result = trainingRequestsStatus;
      //  ////            break;
      //  ////        }
      //  ////    }
      //  ////    return _result;
      //  ////}

      //  /////// <summary>
      //  /////// Обновление статуса заявки на обучение
      //  /////// </summary>
      //  /////// <param name="trainingRequestsStatusItem">статус заявки на обучение</param>
      //  ////public static void TrainingRequestsStatusesUpdate(TrainingRequestsStatuses trainingRequestsStatusItem)
      //  ////{
      //  ////    if (trainingRequestsStatusItem != null)
      //  ////    {
      //  ////        TrainingRequestsStatuses trainingRequestsStatusUpdate =
      //  ////            GetTrainingRequestsStatusbyId(trainingRequestsStatusItem.IdTrainingRequestsStatus);
      //  ////        if (trainingRequestsStatusUpdate != null)
      //  ////        {
      //  ////            trainingRequestsStatusUpdate.IsActive = trainingRequestsStatusItem.IsActive;
      //  ////            trainingRequestsStatusUpdate.NameEn = trainingRequestsStatusItem.NameEn;
      //  ////            trainingRequestsStatusUpdate.NameRu = trainingRequestsStatusItem.NameRu;
      //  ////            trainingRequestsStatusUpdate.DescriptionEn = trainingRequestsStatusItem.DescriptionEn;
      //  ////            trainingRequestsStatusUpdate.DescriptionRu = trainingRequestsStatusItem.DescriptionRu;

      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Добавление статуса заявки на обучение
      //  /////// </summary>
      //  /////// <param name="trainingRequestsStatusItem">статус заявки на обучение</param>
      //  ////public static void TrainingRequestsStatusesInsert(TrainingRequestsStatuses trainingRequestsStatusItem)
      //  ////{
      //  ////    Entities.TrainingRequestsStatuses.Add(trainingRequestsStatusItem);
      //  ////    DB.Save();
      //  ////}

      //  /////// <summary>
      //  /////// Удаление статуса заявки на обучение
      //  /////// </summary>
      //  /////// <param name="trainingRequestsStatusItem">статус заявки на обучение</param>
      //  ////public static void TrainingRequestsStatusesDelete(TrainingRequestsStatuses trainingRequestsStatusItem)
      //  ////{
      //  ////    if (trainingRequestsStatusItem != null)
      //  ////    {
      //  ////        TrainingRequestsStatuses trainingRequestsStatusDel =
      //  ////            GetTrainingRequestsStatusbyId(trainingRequestsStatusItem.IdTrainingRequestsStatus);
      //  ////        if (trainingRequestsStatusDel != null)
      //  ////        {
      //  ////            Entities.TrainingRequestsStatuses.Remove(trainingRequestsStatusDel);
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  //#endregion

      //  //#region TraningsParticipants - MOVED but not commented

      //  //    public static List<TrainingsParticipants> TraningsParticipants
      //  //    {
      //  //        get { return Entities.TrainingsParticipants.ToList(); }
      //  //    }

      //  //    /// <summary>
      //  //    /// Получить участника по Id
      //  //    /// </summary>
      //  //    /// <param name="id"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsParticipants GetTrainingsParticipantsById(int id)
      //  //    {
      //  //        TrainingsParticipants _result = null;
      //  //        foreach (TrainingsParticipants trainingParticipant in TraningsParticipants)
      //  //        {
      //  //            if (trainingParticipant.IdTrainingsParticipant == id)
      //  //            {
      //  //                _result = trainingParticipant;
      //  //                break;
      //  //            }
      //  //        }
      //  //        return _result;
      //  //    }

      //  //    /// <summary>
      //  //    /// Обновление участника
      //  //    /// </summary>
      //  //    /// <param name="participantItem"></param>
      //  //    public static void TrainingsParticipantsUpdate(TrainingsParticipants participantItem)
      //  //    {
      //  //        if (participantItem != null)
      //  //        {
      //  //            TrainingsParticipants participantUpdate = DB.GetTrainingsParticipantsById(participantItem.IdTrainingsParticipant);
      //  //            if (participantUpdate != null)
      //  //            {
      //  //                participantUpdate.ParticipantName = participantItem.ParticipantName;
      //  //                participantUpdate.ParticipantPosition = participantItem.ParticipantPosition;
      //  //                participantUpdate.IdUser = participantItem.IdUser;
      //  //                participantUpdate.IdTrainingsRequest = participantItem.IdTrainingsRequest;
      //  //                participantUpdate.IdTrainingsParticipantsStatus = participantItem.IdTrainingsParticipantsStatus;
      //  //                //var status = DB.GetTrainingParticipantsStatusbyId(participantItem.IdTrainingsParticipantsStatus);
      //  //                //if(status != null)
      //  //                //{
      //  //                //    participantUpdate.TrainingParticipantsStatuses = status;
      //  //                //}
      //  //                DB.FillTrainingsParticipant(participantUpdate);
      //  //                DB.Save();
      //  //            }
      //  //        }
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление участника к заявке c записью в базу
      //  //    /// </summary>
      //  //    /// <param name="traningsParticipantItem"></param>
      //  //    /// <param name="traningsRequestId"></param>
      //  //    public static void TraningsParticipantsAddToRequest(TrainingsParticipants traningsParticipantItem, int traningsRequestId)
      //  //    {

      //  //        traningsParticipantItem.IdTrainingsParticipant = 0;
      //  //        if (traningsParticipantItem.IdUser == null)
      //  //            traningsParticipantItem.IdUser = "";
      //  //        if (traningsParticipantItem.ParticipantName == null)
      //  //            traningsParticipantItem.ParticipantName = "";
      //  //        if (traningsParticipantItem.ParticipantPosition == null)
      //  //            traningsParticipantItem.ParticipantPosition = "";
      //  //        traningsParticipantItem.IdTrainingsRequest = traningsRequestId;
      //  //        Entities.TrainingsParticipants.Add(traningsParticipantItem);
      //  //        DB.Save();
      //  //    }

      //  //    /// <summary>
      //  //    /// Добавление списка участников к заявке
      //  //    /// </summary>
      //  //    /// <param name="traningsParticipantList"></param>
      //  //    /// <param name="traningsRequestItem"></param>
      //  //    /// <returns></returns>
      //  //    public static TrainingsRequests TraningsParticipantsListAddToRequest(List<TrainingsParticipants> traningsParticipantList, TrainingsRequests traningsRequestItem)
      //  //    {
      //  //        foreach (var participantItem in traningsParticipantList)
      //  //        {
      //  //            if (participantItem != null)
      //  //            {
      //  //                participantItem.IdTrainingsParticipant = -1;
      //  //                if (participantItem.IdUser == null)
      //  //                    participantItem.IdUser = "";
      //  //                if (participantItem.ParticipantName == null)
      //  //                    participantItem.ParticipantName = "";
      //  //                if (participantItem.ParticipantPosition == null)
      //  //                    participantItem.ParticipantPosition = "";
      //  //                traningsRequestItem.TrainingsParticipants.Add(participantItem);
      //  //            }
      //  //        }
      //  //        return traningsRequestItem;
      //  //    }

      //  //    /// <summary>
      //  //    /// Возвращает список участников заявки на обучение
      //  //    /// </summary>
      //  //    /// <param name="request"></param>
      //  //    /// <returns></returns>
      //  //    public static List<TrainingsParticipants> GetTrainingsParticipantsByRequest(TrainingsRequests request)
      //  //    {
      //  //        if (request != null)
      //  //        {
      //  //            var result = new List<TrainingsParticipants>();
      //  //            foreach (var item in DB.TraningsParticipants)
      //  //            {
      //  //                if (item.IdTrainingsRequest == request.IdTrainingsRequest)
      //  //                {
      //  //                    result.Add(item);
      //  //                }
      //  //            }
      //  //            if (result.Count > 0)
      //  //                return result;
      //  //        }
      //  //        return null;
      //  //    }

      //  //    /// <summary>
      //  //    /// Удаление участника из базы
      //  //    /// </summary>
      //  //    /// <param name="participantDel"></param>
      //  //    public static void TrainingsParticipantDelete(TrainingsParticipants participantDel)
      //  //    {
      //  //        if (participantDel != null)
      //  //        {
      //  //            Entities.TrainingsParticipants.Remove(participantDel);
      //  //            DB.Save();
      //  //        }
      //  //    }

      //  //        /// <summary>
      //  //        /// Возвращает список участников всех заявок выбранного расписания
      //  //        /// </summary>
      //  //        /// <param name="scheduleId"></param>
      //  //        /// <returns></returns>
      //  //        public static List<TrainingsParticipants> GetTrainingsParticipantsByScheduleId(int scheduleId)
      //  //        {
      //  //            var result = new List<TrainingsParticipants>();

      //  //            foreach (var participant in TraningsParticipants)
      //  //            {
      //  //                if (participant.TrainingsRequests != null)
      //  //                    if (participant.TrainingsRequests.IdTrainingsSchedule == scheduleId)
      //  //                        result.Add(participant);
      //  //            }

      //  //            return result;
      //  //        }

      //  //    /// <summary>
      //  //    /// Заполняет нулевые значение пустыми строками
      //  //    /// </summary>
      //  //    /// <param name="participant"></param>
      //  //    public static void FillTrainingsParticipant(TrainingsParticipants participant)
      //  //    {
      //  //        if(participant != null)
      //  //        {
      //  //            if (participant.ParticipantName == null)
      //  //                participant.ParticipantName = "";
      //  //            if (participant.ParticipantPosition == null)
      //  //                participant.ParticipantPosition = "";
      //  //        }
      //  //    }

      //  //#endregion

      //  //#region TrainingParticipantsStatuses - MOVED

      //  /////// <summary>
      //  /////// Список статусов участников
      //  /////// </summary>
      //  ////public static List<TrainingParticipantsStatuses> TrainingParticipantsStatuses
      //  ////{
      //  ////    get { return Entities.TrainingParticipantsStatuses.ToList(); }
      //  ////}

      //  /////// <summary>
      //  /////// Активные статусы участников
      //  /////// </summary>
      //  ////public static IEnumerable<TrainingParticipantsStatuses> TrainingParticipantsStatusesActive
      //  ////{
      //  ////    get
      //  ////    {
      //  ////        return
      //  ////            TrainingParticipantsStatuses.Where(p => p.IsActive);
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Получение локализованного списка значений
      //  /////// </summary>
      //  /////// <param name="culture"></param>
      //  /////// <returns></returns>
      //  ////public static List<LocalizedListItem> GetLocalizedTrainingParticipantsStatusesNames(string culture)
      //  ////{
      //  ////    List<LocalizedListItem> result = null;
      //  ////    foreach (TrainingParticipantsStatuses item in TrainingParticipantsStatuses)
      //  ////    {
      //  ////        if (result == null) result = new List<LocalizedListItem>();
      //  ////        var listItem = new LocalizedListItem();
      //  ////        listItem.Id = item.IdTrainingParticipantsStatus;
      //  ////        listItem.ParentCollection = TrainingParticipantsStatuses;
      //  ////        if (culture.Contains("ru"))
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameRu;
      //  ////        }
      //  ////        else
      //  ////        {
      //  ////            listItem.LocaLizedString = item.NameEn;
      //  ////        }
      //  ////        result.Add(listItem);
      //  ////    }
      //  ////    return result;
      //  ////}

      //  /////// <summary>
      //  /////// Получить статус участника по Id
      //  /////// </summary>
      //  /////// <param name="idTrainingParticipantsStatus">Id статуса участника</param>
      //  /////// <returns>целевая аудитория</returns>
      //  ////public static TrainingParticipantsStatuses GetTrainingParticipantsStatusbyId(int idTrainingParticipantsStatus)
      //  ////{
      //  ////    TrainingParticipantsStatuses _result = null;
      //  ////    foreach (TrainingParticipantsStatuses trainingParticipantsStatus in TrainingParticipantsStatuses)
      //  ////    {
      //  ////        if (trainingParticipantsStatus.IdTrainingParticipantsStatus == idTrainingParticipantsStatus)
      //  ////        {
      //  ////            _result = trainingParticipantsStatus;
      //  ////            break;
      //  ////        }
      //  ////    }
      //  ////    return _result;
      //  ////}

      //  /////// <summary>
      //  /////// Обновление статуса участника
      //  /////// </summary>
      //  /////// <param name="trainingParticipantsStatusItem">статус участника</param>
      //  ////public static void TrainingParticipantsStatusesUpdate(TrainingParticipantsStatuses trainingParticipantsStatusItem)
      //  ////{
      //  ////    if (trainingParticipantsStatusItem != null)
      //  ////    {
      //  ////        TrainingParticipantsStatuses trainingParticipantsStatusUpdate =
      //  ////            GetTrainingParticipantsStatusbyId(trainingParticipantsStatusItem.IdTrainingParticipantsStatus);
      //  ////        if (trainingParticipantsStatusUpdate != null)
      //  ////        {
      //  ////            trainingParticipantsStatusUpdate.IsActive = trainingParticipantsStatusItem.IsActive;
      //  ////            trainingParticipantsStatusUpdate.NameEn = trainingParticipantsStatusItem.NameEn;
      //  ////            trainingParticipantsStatusUpdate.NameRu = trainingParticipantsStatusItem.NameRu;
      //  ////            trainingParticipantsStatusUpdate.DescriptionRu = trainingParticipantsStatusItem.DescriptionRu;
      //  ////            trainingParticipantsStatusUpdate.DescriptionEn = trainingParticipantsStatusItem.DescriptionEn;
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  /////// <summary>
      //  /////// Добавление статуса участника
      //  /////// </summary>
      //  /////// <param name="trainingParticipantsStatusItem">статус участника</param>
      //  ////public static void TrainingParticipantsStatusesInsert(
      //  ////    TrainingParticipantsStatuses trainingParticipantsStatusItem)
      //  ////{
      //  ////    Entities.TrainingParticipantsStatuses.Add(trainingParticipantsStatusItem);
      //  ////    DB.Save();
      //  ////}

      //  /////// <summary>
      //  /////// Удаление статуса участника
      //  /////// </summary>
      //  /////// <param name="trainingParticipantsStatusItem">статус участника</param>
      //  ////public static void TrainingParticipantsStatusesDelete(
      //  ////    TrainingParticipantsStatuses trainingParticipantsStatusItem)
      //  ////{
      //  ////    if (trainingParticipantsStatusItem != null)
      //  ////    {
      //  ////        TrainingParticipantsStatuses trainingParticipantsStatusDel =
      //  ////            GetTrainingParticipantsStatusbyId(trainingParticipantsStatusItem.IdTrainingParticipantsStatus);
      //  ////        if (trainingParticipantsStatusDel != null)
      //  ////        {
      //  ////            Entities.TrainingParticipantsStatuses.Remove(trainingParticipantsStatusDel);
      //  ////            DB.Save();
      //  ////        }
      //  ////    }
      //  ////}

      //  //#endregion


        #region TrainingsRequestsExt - moved НЕ КОММЕНТИРОВАТЬ не удалать!

        //public static Dictionary<int, TrainingsRequestsExt> TrainingsRequestsExtDictionary
        //{
        //    get
        //    {
        //        if (_trainingsRequestsExtDictionary == null)
        //            _trainingsRequestsExtDictionary = new Dictionary<int, TrainingsRequestsExt>();
        //        return _trainingsRequestsExtDictionary;
        //    }
        //    set { _trainingsRequestsExtDictionary = value; }
        //}
        //private static Dictionary<int, TrainingsRequestsExt> _trainingsRequestsExtDictionary;

        /// <summary>
        /// Словарь для временного хранения расширенных заявок в памяти
        /// </summary>
        public static Dictionary<int, CRM.Database.Model.TrainingsRequestsExt> TrainingsRequestsExtDic
        {
            get
            {
                if (_trainingsRequestsExtDic == null)
                    _trainingsRequestsExtDic = new Dictionary<int, CRM.Database.Model.TrainingsRequestsExt>();
                return _trainingsRequestsExtDic;
            }
            set { _trainingsRequestsExtDic = value; }
        }
        private static Dictionary<int, CRM.Database.Model.TrainingsRequestsExt> _trainingsRequestsExtDic;

        ////public static void TrainingsParticipantsAdd(TrainingsParticipants participant, int dictionaryKey)
        ////{
        ////    var requestsExt = DB.TrainingsRequestsExtDictionary[dictionaryKey];
        ////    if (requestsExt != null)
        ////    {
        ////        if (requestsExt.ParticipantsList.Count > 0)
        ////        {
        ////            var id = requestsExt.ParticipantsList.Max(p => p.IdTrainingsParticipant);
        ////            participant.IdTrainingsParticipant = ++id;
        ////            requestsExt.ParticipantsList.Add(participant);
        ////            return;
        ////        }
        ////        participant.IdTrainingsParticipant = 1;
        ////        requestsExt.ParticipantsList.Add(participant);
        ////        return;
        ////    }
        ////}
        ////public static void TrainingsParticipantsDel(TrainingsParticipants participant, int dictionaryKey)
        ////{
        ////    var requestsExt = DB.TrainingsRequestsExtDictionary[dictionaryKey];
        ////    if (requestsExt != null)
        ////    {
        ////        foreach (var item in requestsExt.ParticipantsList)
        ////        {
        ////            if (item.IdTrainingsParticipant == participant.IdTrainingsParticipant)
        ////            {
        ////                requestsExt.ParticipantsList.Remove(item);
        ////                break;
        ////            }
        ////        }
        ////    }
        ////}
        ////public static void TrainingsParticipantsEdit(TrainingsParticipants participant, int dictionaryKey)
        ////{
        ////    var requestsExt = DB.TrainingsRequestsExtDictionary[dictionaryKey];
        ////    if (requestsExt != null)
        ////    {
        ////        foreach (var item in requestsExt.ParticipantsList)
        ////        {
        ////            if (item.IdTrainingsParticipant == participant.IdTrainingsParticipant)
        ////            {
        ////                item.ParticipantName = participant.ParticipantName;
        ////                item.ParticipantPosition = participant.ParticipantPosition;
        ////                item.IdTrainingsParticipantsStatus = participant.IdTrainingsParticipantsStatus;
        ////                break;
        ////            }
        ////        }
        ////    }
        ////}

        /////// <summary>
        /////// Сохранение расширеной заявки в базу
        /////// </summary>
        /////// <param name="requestExt"></param>
        ////public static void TrainingsRequestsExtInsert(TrainingsRequestsExt requestExt)
        ////{
        ////    requestExt.Request = DB.TraningsParticipantsListAddToRequest(requestExt.ParticipantsList, requestExt.Request);
        ////    DB.TrainingsRequestsInsert(requestExt.Request);
        ////}

        /////// <summary>
        /////// Заполняет пустыми строками нулевые значения
        /////// </summary>
        /////// <param name="requestsExt"></param>
        ////public static void FillTrainingsRequestExt(TrainingsRequestsExt requestsExt)
        ////{
        ////    if (requestsExt != null)
        ////    {
        ////        DB.FillTrainingsRequest(requestsExt.Request);
        ////    }
        ////}

        /////// <summary>
        /////// Обновление расширенной заявки в базе
        /////// </summary>
        /////// <param name="requestExt"></param>
        ////public static void TrainingsRequestsExtUpdate(TrainingsRequestsExt requestExt)
        ////{
        ////    DB.TrainingsRequestUpdate(requestExt.Request, requestExt.ParticipantsList);
        ////}

        #endregion

        #region TrainingsScheduler - moved НЕ КОММЕНТИРОВАТЬ не удалать!

        ///// <summary>
        ///// Возвращает тренеров в виде списка ресурсов для календаря
        ///// </summary>
        ///// <returns></returns>
        //public static List<SchedulerResources> GetTrainersAsSchedulerResources()
        //{
        //    var result = new List<SchedulerResources>();
        //    foreach (var trainer in TrainingsTrainersActive)
        //    {
        //        var resourceItem = new SchedulerResources
        //                               {
        //                                   ResourceID = trainer.IdTrainingsTrainer,
        //                                   UniqueID = trainer.IdTrainingsTrainer,
        //                                   ResourceName = trainer.Name
        //                               };
        //        //resourceItem.Color = trainer.IdTrainingsTrainer;
        //        result.Add(resourceItem);
        //    }
        //    return result;
        //}

        ///// <summary>
        ///// Возвращает список курсов из расписания курсов в виде назначений для календаря
        ///// </summary>
        ///// <returns></returns>
        //public static List<SchedulerAppointments> GetCoursesAsSchedulerAppointments()
        //{
        //    var result = new List<SchedulerAppointments>();
        //    foreach (var schedule in TrainingsSchedules)
        //    {
        //        var course = DB.GetTrainingsCoursebyId(schedule.IdTrainingsCource);
        //        if(course!= null)
        //        {
        //            var appointment = new SchedulerAppointments();
        //            //if(schedule.TrainingsPlaces!= null)
        //            //{
        //            //    if(!string.IsNullOrEmpty(schedule.TrainingsPlaces.NameRu))
        //            //    {
        //            //        appointment.Location = schedule.TrainingsPlaces.NameRu;
        //            //    }
        //            //}
        //            appointment.Location = schedule.LocationName;
        //            appointment.ResourceID = schedule.IdTrainingsTrainer;
        //            appointment.StartDate = schedule.PlannedDate;
        //            appointment.EndDate = schedule.PlannedDate.AddDays(course.Duration);
        //            appointment.Subject = course.Name;
        //            appointment.Status = 0;
        //            appointment.Type = 0;
        //            appointment.Label = 1;
        //            appointment.AllDay = false;
        //            appointment.UniqueID = schedule.IdTrainingsSchedule;
        //            result.Add(appointment);
        //        }
        //    }
        //    return result;
        //}

        ///// <summary>
        ///// Возвращает заполненный объект планировщика для отображения календаря
        ///// </summary>
        ///// <returns></returns>
        //public static SchedulerDataObject GetTrainingsSchedulerObject()
        //{
        //    return new SchedulerDataObject
        //                     {
        //                         Appointments = GetCoursesAsSchedulerAppointments(),
        //                         Resources = GetTrainersAsSchedulerResources()
        //                     };
        //}

        ////---------------------
        ////public static SchedulerDataObject GetTestObject()
        ////{
        ////    //var res = new SchedulerResources { ResourceID = 1, UniqueID = 1, ResourceName = "ResName1" };
        ////    var t = GetTrainingsTrainerbyId(1);
        ////    var res = new SchedulerResources
        ////                  {
        ////                      ResourceID = t.IdTrainingsTrainer, 
        ////                      UniqueID = t.IdTrainingsTrainer, 
        ////                      ResourceName = t.Name
        ////                  };
        ////    var sc = new SchedulerAppointments
        ////                 {
        ////                     UniqueID = 1,
        ////                     ResourceID = 1,
        ////                     Type = 0,
        ////                     StartDate = new DateTime(2013, 01, 15),
        ////                     EndDate = new DateTime(2013, 01, 16),
        ////                     AllDay = true,
        ////                     Subject = "subj 1",
        ////                     Location = "loc 2",
        ////                     Description = "descr",
        ////                     Status = 0,
        ////                     Label = 1
        ////                 };
        ////    sc.ResourceID = 1;
        ////    sc.ReminderInfo = "rem info";
        ////    sc.RecurrenceInfo = "rec info";
        ////    sc.CustomField1 = "cust f";
        ////    var resList = new List<SchedulerResources> { res };
        ////    var resList1 = GetTrainersAsSchedulerResources();
        ////    var appList = new List<SchedulerAppointments> { sc };
        ////    var dataObj1 = GetCoursesAsSchedulerAppointments();
        ////    var dataObj = new SchedulerDataObject { Resources = resList1, Appointments = dataObj1 };
        ////    return dataObj;
        ////}
        ////public static List<DBAppointments> DBAppointments
        ////{
        ////    get { return Entities.DBAppointments; }
        ////}
        ////public static List<DBResources> DBResources
        ////{
        ////    get { return Entities.DBResources; }
        ////}
        ////public static SchedulerDataObject DataObject
        ////{
        ////    get
        ////    {
        ////        return new SchedulerDataObject()
        ////        {
        ////            Appointments = DB.DBAppointments,
        ////            Resources = DB.DBResources
        ////        };
        ////    }
        ////}

        static MVCxAppointmentStorage _defaultAppointmentStorage;
        public static MVCxAppointmentStorage DefaultAppointmentStorage
        {
            get
            {
                if (_defaultAppointmentStorage == null)
                    _defaultAppointmentStorage = CreateDefaultAppointmentStorage();
                return _defaultAppointmentStorage;
            }
        }
        static MVCxAppointmentStorage CreateDefaultAppointmentStorage()
        {
            MVCxAppointmentStorage appointmentStorage = new MVCxAppointmentStorage();
            appointmentStorage.Mappings.AppointmentId = "UniqueID";
            appointmentStorage.Mappings.Start = "StartDate";
            appointmentStorage.Mappings.End = "EndDate";
            appointmentStorage.Mappings.Subject = "Subject";
            appointmentStorage.Mappings.Description = "Description";
            appointmentStorage.Mappings.Location = "Location";
            appointmentStorage.Mappings.AllDay = "AllDay";
            appointmentStorage.Mappings.Type = "Type";
            appointmentStorage.Mappings.RecurrenceInfo = "RecurrenceInfo";
            appointmentStorage.Mappings.ReminderInfo = "ReminderInfo";
            appointmentStorage.Mappings.Label = "Label";
            appointmentStorage.Mappings.Status = "Status";
            appointmentStorage.Mappings.ResourceId = "ResourceID";
            return appointmentStorage;
        }
        static MVCxResourceStorage _defaultResourceStorage;
        public static MVCxResourceStorage DefaultResourceStorage
        {
            get
            {
                if (_defaultResourceStorage == null)
                    _defaultResourceStorage = CreateDefaultResourceStorage();
                return _defaultResourceStorage;
            }
        }
        static MVCxResourceStorage CreateDefaultResourceStorage()
        {
            MVCxResourceStorage resourceStorage = new MVCxResourceStorage();
            resourceStorage.Mappings.ResourceId = "ResourceID";
            resourceStorage.Mappings.Caption = "ResourceName";
            return resourceStorage;
        }

        #endregion 

        #region SendMail - moved НЕ КОММЕНТИРОВАТЬ не удалать!

        ///// <summary>
        ///// Возвращает ссылку на карточку клиента для определенного менеджера
        ///// </summary>
        ///// <param name="idCustomer"></param>
        ///// <returns></returns>
        //public static string GetLinkForManagersRequests(int idCustomer)
        //{
        //    if (idCustomer > 0) return "http://ruw8kap01/CRM/Customers/Details/" + idCustomer.ToString();
        //    return "";
        //}

        /// <summary>
        /// Возвращает набор заполненных параметров закладок для вставки в документ для отправки. 
        /// </summary>
        /// <param name="idReqiest"></param>
        /// <returns></returns>
        public static List<DocReport.DocReportParamsItem> GetDocReportParamsByRequestId(int idReqiest)
        {
            var requestsCol = new TrainingsRequestsCollection();
            var coursesCol = new TrainingsCoursesCollection();
            var customersCol = new CustomersCollection();

            var result = new List<DocReport.DocReportParamsItem>();

            var request = (TrainingsRequests)requestsCol.GetItemById(idReqiest);
            //var request = DB.GetTrainingsRequestesById(idReqiest);
            if (request == null) return result;

            //ContactName
            var paramContactName = new DocReport.DocReportParamsItem(DocBookmarks.ContactName, request.ContactNameExt);
            result.Add(paramContactName);

            //ContactName1
            var paramContactName1 = new DocReport.DocReportParamsItem(DocBookmarks.ContactName1, request.ContactNameExt);
            result.Add(paramContactName1);

            //CompanyName
            var paramCompanyName = new DocReport.DocReportParamsItem(DocBookmarks.CompanyName, request.CompanyExt);
            result.Add(paramCompanyName);

            //CompanyName
            var paramCompanyName1 = new DocReport.DocReportParamsItem(DocBookmarks.CompanyName1, request.CompanyExt);
            result.Add(paramCompanyName1);

            //ContactEmail
            var paramContactEmail = new DocReport.DocReportParamsItem(DocBookmarks.ContactEmail, request.ContactEmailExt);
            result.Add(paramContactEmail);

            //CourseName
            var paramCourseName = new DocReport.DocReportParamsItem(DocBookmarks.CourseName, request.CourseNameExt);
            result.Add(paramCourseName);

            //CourseName1
            var paramCourseName1 = new DocReport.DocReportParamsItem(DocBookmarks.CourseName1, request.CourseNameExt);
            result.Add(paramCourseName1);

            //Duration
            var paramDuration = new DocReport.DocReportParamsItem(DocBookmarks.Duration, request.DurationTxt);
            result.Add(paramDuration);

            //Duration1
            var paramDuration1 = new DocReport.DocReportParamsItem(DocBookmarks.Duration1, request.DurationTxt);
            result.Add(paramDuration1);

            //CourseDate
            if (request.TrainingsSchedules != null)
            {
                var paramCourseDate = new DocReport.DocReportParamsItem(DocBookmarks.CourseDate,
                                                                        request.TrainingsSchedules.PlannedDate.
                                                                            ToLongDateString());
                result.Add(paramCourseDate);
            }

            //CourseDate1
            if (request.TrainingsSchedules != null)
            {
                var paramCourseDate1 = new DocReport.DocReportParamsItem(DocBookmarks.CourseDate1,
                                                                        request.TrainingsSchedules.PlannedDate.
                                                                            ToLongDateString());
                result.Add(paramCourseDate1);
            }

            //Length
            if (request.TrainingsSchedules != null)
            {
                if (request.TrainingsSchedules.TrainingsCourses != null)
                {
                    var paramLength = new DocReport.DocReportParamsItem(DocBookmarks.Length,
                                                                        request.TrainingsSchedules.TrainingsCourses.
                                                                            Duration.ToString());
                    result.Add(paramLength);
                }
                else
                {
                    if (request.IdTrainingsCourse > 0)
                    {
                        var course = (CRM.Database.Model.TrainingsCourses)coursesCol.GetItemById(request.IdTrainingsCourse);
                        //var course = GetTrainingsCoursebyId(request.IdTrainingsCourse);
                        if (course != null)
                        {
                            var paramLength = new DocReport.DocReportParamsItem(DocBookmarks.Length, course.Duration.ToString());
                            result.Add(paramLength);
                        }
                    }
                }
            }

            //Id
            var paramId = new DocReport.DocReportParamsItem(DocBookmarks.Id, request.IdTrainingsRequest.ToString());
            result.Add(paramId);

            //Members
            var paramMembers = new DocReport.DocReportParamsItem(DocBookmarks.Members, request.ParticipantsList);
            result.Add(paramMembers);

            //Сity & City1
            if (request.TrainingsSchedules != null)
            {
                if (request.TrainingsSchedules.TrainingsPlaces != null)
                {
                    var paramСity = new DocReport.DocReportParamsItem(DocBookmarks.Сity, request.TrainingsSchedules.TrainingsPlaces.TrainingsCityName);
                    result.Add(paramСity);

                    var paramСity1 = new DocReport.DocReportParamsItem(DocBookmarks.Сity1, request.TrainingsSchedules.TrainingsPlaces.TrainingsCityName);
                    result.Add(paramСity1);
                }
            }

            //ManagerName & ManagerName1
            if (request.IdCustomer != null)
            {
                var customer = (CRM.Database.Model.Customers)customersCol.GetItemById((int)request.IdCustomer);
                //var customer = GetCustomerById((int)request.IdCustomer);
                if (customer != null)
                {
                    var paramManagerName = new DocReport.DocReportParamsItem(DocBookmarks.ManagerName, customer.Manager);
                    result.Add(paramManagerName);

                    var paramManagerName1 = new DocReport.DocReportParamsItem(DocBookmarks.ManagerName1, customer.Manager);
                    result.Add(paramManagerName1);

                    //LinkForManager
                    var paramLinkForManager = new DocReport.DocReportParamsItem(DocBookmarks.LinkForManager, request.LinkForManagersRequests);
                    //var paramLinkForManager = new DocReport.DocReportParamsItem(DocBookmarks.LinkForManager, DB.GetLinkForManagersRequests((int)request.IdCustomer));
                    result.Add(paramLinkForManager);
                }

            }

            //MembersRefuse
            var paramMembersRefuse = new DocReport.DocReportParamsItem(DocBookmarks.MembersRefuse, request.ParticipantsRefusedList);
            result.Add(paramMembersRefuse);

            return result;
        }

        /// <summary>
        /// Отправить уведомление о получении заявки контактному лицу
        /// </summary>
        /// <returns>null при успешной выполнении</returns>
        public static string TrainingsSendNewMail(TrainingsRequests request)
        {
            if (request == null) return "Request is null";
            if (request.IdContact == null) return "Request contacts is null or empty";
            
            var confCol = new ConfigurationsCollection();
            
            return Utilites.Mail.SendMail(
                request.ContactEmailExt, //to
                confCol.TrainingsDefaultMAILFROMString, //from
                "Заявка зарегистрирована под номером " + request.IdTrainingsRequest, //subject
                "Заявка зарегистрирована под номером " + request.IdTrainingsRequest, //body
                confCol.TrainingsDocsTargetPath + "\\new" + request.IdTrainingsRequest + ".doc", //attachment
                confCol.MailServerIp, //ip
                confCol.MailServerPort //port
                );
        }

        /// <summary>
        /// Отправляет предложение клиенту для выездных курсов 
        /// или запрос менеджеру для плановых курсов
        /// </summary>
        /// <returns></returns>
        public static string TrainingsSendConfirmationMail(TrainingsRequests request, string subject = "Запрос на подтверждение")
        {
            if (request == null) return "Request is null";
            if (request.IdContact == null) return "Request contacts is null or empty";
            
            var confCol = new ConfigurationsCollection();

            var sendTo = request.ContactEmailExt;
            if (!string.IsNullOrEmpty(request.ManagerEmail))
                if(request.IsRemote)
                    sendTo += ", " + request.ManagerEmail;

            return Utilites.Mail.SendMail(
                sendTo, //to
                confCol.TrainingsDefaultMAILFROMString, //from
                subject, //subject
                subject, //body
                confCol.TrainingsDocsTargetPath + "\\confirmation" + request.IdTrainingsRequest + ".doc", //attachment
                confCol.MailServerIp, //ip
                confCol.MailServerPort //port
                );
        }

        /// <summary>
        /// отправляет приглашение (подтверждение участия) контактному лицу
        /// </summary>
        /// <returns></returns>
        public static string TrainingsSendAcceptanceMail(TrainingsRequests request, string subject)
        {
            var confCol = new ConfigurationsCollection();
            if (request == null) return "Request is null";
            if (request.IdContact != null)
            {
                return Utilites.Mail.SendMail(
                                                request.ContactEmailExt, //to
                                                confCol.TrainingsDefaultMAILFROMString, //from
                                                subject, //subject
                                                subject, //body
                                                confCol.TrainingsDocsTargetPath + "\\acceptance" + request.IdTrainingsRequest + ".doc", //attachment
                                                confCol.MailServerIp, //ip
                                                confCol.MailServerPort //port
                                             );
            }
            return "Request contacts is null or empty";
        }

        /// <summary>
        /// Отправляет отказ контактному лицу
        /// </summary>
        /// <returns></returns>
        public static string TrainingsSendRefuseMail(TrainingsRequests request)
        {
            var confCol = new ConfigurationsCollection();
            if (request == null) return "Request is null";
            if (request.IdContact == null) return "Request contacts is null or empty";

            var sendTo = "";
            if (request.IsPlanned)
                sendTo = request.ContactEmailExt;
            if (request.IsRemote)
                sendTo = request.ManagerEmail;

            return Utilites.Mail.SendMail(
                sendTo, //to
                confCol.TrainingsDefaultMAILFROMString, //from
                "Отказ в учебном курсе", //subject
                "Отказ в учебном курсе", //body
                confCol.TrainingsDocsTargetPath + "\\refuse" + request.IdTrainingsRequest + ".doc", //attachment
                confCol.MailServerIp, //ip
                confCol.MailServerPort //port
                );
        }

        #endregion

        #region TrainingsReports - Формирование отчетов для обученя

        /// <summary>
        /// Возвращает набор заполненных параметров закладок для вставки в документ
        /// </summary>
        /// <param name="idSchedule"></param>
        /// <returns></returns>
        public static List<DocReport.DocReportParamsItem> GetDocReportParamsByScheduleId(int idSchedule)
        {
            //результат
            var result = new List<DocReport.DocReportParamsItem>();

            //вспомогательные коллекции
            //var requestsCol = new TrainingsRequestsCollection();
            //var coursesCol = new TrainingsCoursesCollection();
            //var customersCol = new CustomersCollection();
            var schedulesCol = new TrainingsSchedulesCollection();

            //получить расписание по id
            var schedule = (TrainingsSchedules) schedulesCol.GetItemById(idSchedule);
            if (schedule == null) return result;

            //заполнение закладок

            //PlaceName	Название площалки
            var paramPlaceName = new DocReport.DocReportParamsItem(DocBookmarks.PlaceName, schedule.LocationName);
            result.Add(paramPlaceName);

            //CourseDate Дата курса
            var paramCourseDate = new DocReport.DocReportParamsItem(DocBookmarks.CourseDate, schedule.PlannedDate.ToLongDateString());
            result.Add(paramCourseDate);

            //MembersCount Кол-во участников
            var paramMembersCount = new DocReport.DocReportParamsItem(DocBookmarks.MembersCount, schedule.ParticipantsCountApproved.ToString());
            result.Add(paramMembersCount);

            //CourseName Название курса
            var paramCourseName = new DocReport.DocReportParamsItem(DocBookmarks.CourseName, schedule.CourseName);
            result.Add(paramCourseName);

            //CourseDate Имя тренера
            var paramTrainerName = new DocReport.DocReportParamsItem(DocBookmarks.TrainerName, schedule.TrainerName);
            result.Add(paramTrainerName);

            return result;
        }

        #endregion

        //  #endregion
      //  // Техники //////////////////////////////////////////////////////
      //  #region Technics - moved
      //  #region CustomersProductSystems - moved
      //      ///// <summary>
      //      ///// Привязки систем к клиенту
      //      ///// </summary>
      //      //public static List<CustomersProductSystems> CustomersProductSystems
      //      //{
      //      //    get { return Entities.CustomersProductSystems.ToList(); }
      //      //}

      //      ///// <summary>
      //      ///// Возвращает привязку системы к киенту по ID
      //      ///// </summary>
      //      ///// <param name="id"></param>
      //      ///// <returns></returns>
      //      //public static CustomersProductSystems GetCustomersProductSystembyId(int id)
      //      //{
      //      //    CustomersProductSystems result = null;
      //      //    foreach (CustomersProductSystems item in CustomersProductSystems)
      //      //    {
      //      //        if (item.IdCustomersProductSystem == id)
      //      //        {
      //      //            result = item;
      //      //            break;
      //      //        }
      //      //    }
      //      //    return result;
      //      //}
      //  #endregion
      //  #region TechnicRequestExt - moved
      //  //public static Dictionary<int, TechnicRequestsExt> TechnicRequestExtDictionary
      //  //{
      //  //    get
      //  //    {
      //  //        if (_technicRequestsExtDictionary == null)
      //  //            _technicRequestsExtDictionary = new Dictionary<int, TechnicRequestsExt>();
      //  //        return _technicRequestsExtDictionary;
      //  //    }
      //  //    set { _technicRequestsExtDictionary = value; }
      //  //}
      //  //private static Dictionary<int, TechnicRequestsExt> _technicRequestsExtDictionary;

      //  ///// <summary>
      //  ///// сохранение расширенной заявки в базу
      //  ///// </summary>
      //  ///// <param name="requestsExt"></param>
      //  //public static void TechnicRequestExtInsert(TechnicRequestsExt requestsExt)
      //  //{
      //  //    //сохранение заявки в БД
      //  //    DB.TechnicRequestInsert(requestsExt.Request);

      //  //    //если заявка корректро сохранилось, то ее ИД больше 1
      //  //    if(requestsExt.Request.IdTechnicRequest < 1) return;

      //  //    //получение списка типов выездов из текстовой стоки
      //  //    var visitsTypesList = DB.GetVisitTypesFromString(requestsExt.VisitsTypes);

      //  //    //добавление списка типов выездов заявке
      //  //    DB.TechnicRequestAddVisitsTypes(requestsExt.Request, visitsTypesList);

      //  //    //добавление систем к заявке
      //  //    DB.TechnicRequestAddProductSystems(requestsExt.Request, requestsExt.ProdustSystemsList);

      //  //    //добавление аттачментов к заявке
      //  //    DB.TechnicRequestAddAttachments(requestsExt.Request, requestsExt.AttachmentsList);

      //  //    return;
      //  //}

      //  ///// <summary>
      //  ///// Обновление расширенной заявки в базе
      //  ///// </summary>
      //  ///// <param name="requestsExt"></param>
      //  //public static void TechnicRequestExtUpdate(TechnicRequestsExt requestsExt)
      //  //{
      //  //    //обновление заявки в БД
      //  //    DB.TechnicRequestUpdate(requestsExt.Request);

      //  //    //получение списка типов выездов из текстовой стоки
      //  //    var visitsTypesList = DB.GetVisitTypesFromString(requestsExt.VisitsTypes);

      //  //    //обновление списка типов выездов заявке
      //  //    if(visitsTypesList.Count>0)
      //  //        DB.TechnicRequestUpdateVisitsTypes(requestsExt.Request, visitsTypesList);

      //  //    //Обновление списка систем
      //  //    DB.TechnicRequestUpdateProductSystems(requestsExt.Request, requestsExt.ProdustSystemsList);

      //  //    //Обновление оборудования
      //  //    DB.TechnicRequestsEquipmentsUpdate(requestsExt.Request, requestsExt.RequestsEquipmentsList);

      //  //    //добавление аттачментов к заявке, если есть 
      //  //    if(requestsExt.AttachmentsList.Count>0)
      //  //        DB.TechnicRequestAddAttachments(requestsExt.Request, requestsExt.AttachmentsList);
      //  //}
      //  #endregion
      //  #region TechnicScheduler - moved
      //  ///// <summary>
      //  ///// Возвращает заполненный объект планировщика для отображения календаря
      //  ///// </summary>
      //  ///// <returns></returns>
      //  //public static SchedulerDataObject GetTechnicSchedulerObject()
      //  //{
      //  //    return new SchedulerDataObject
      //  //    {
      //  //        Appointments = GetTechnicRequestsAsSchedulerAppointments(),
      //  //        Resources = GetTechnicsAsSchedulerResources()
      //  //    };
      //  //}

      //  ///// <summary>
      //  ///// Возвращает техников в виде ресурсов для календаря
      //  ///// </summary>
      //  ///// <returns></returns>
      //  //public static List<SchedulerResources> GetTechnicsAsSchedulerResources()
      //  //{
      //  //    var result = new List<SchedulerResources>();
      //  //    if (DB.TechnicRequests == null) return result;
      //  //    foreach (var request in DB.TechnicRequests)
      //  //    {
      //  //        if(request!=null)
      //  //        {
      //  //            if (request.IdTechnic > 0)
      //  //            {
      //  //                var col = new UsersCollection();
      //  //                var user = col.GetUserbyId(request.IdTechnic);
      //  //                {
      //  //                    if (user != null)
      //  //                    {
      //  //                        var resourceItem = new SchedulerResources
      //  //                        {
      //  //                            ResourceID = user.IdUser,
      //  //                            UniqueID = user.IdUser,
      //  //                            ResourceName = user.LocalizedFullName
      //  //                        };
      //  //                        result.Add(resourceItem);
      //  //                    }
      //  //                }
      //  //            }
      //  //        }
      //  //    }
      //  //    return result;
      //  //}

      //  ///// <summary>
      //  ///// Возвращает запланированные заявки в виде назначений для календаря
      //  ///// </summary>
      //  ///// <returns></returns>
      //  //public static List<SchedulerAppointments> GetTechnicRequestsAsSchedulerAppointments()
      //  //{
      //  //    var result = new List<SchedulerAppointments>();
      //  //    if (DB.TechnicRequests == null) return result;
      //  //    foreach (var request in DB.TechnicRequests)
      //  //    {
      //  //        if(request!=null)
      //  //        {
      //  //            if(request.IdTechnic>0)
      //  //            {
      //  //                if(request.PlannedDate!=null)
      //  //                {
      //  //                    var appointment = new SchedulerAppointments();
      //  //                    appointment.ResourceID = request.IdTechnic;
      //  //                    appointment.StartDate = (DateTime)request.PlannedDate;
      //  //                    appointment.EndDate = appointment.StartDate.AddDays(0.5);
      //  //                    appointment.Subject = request.LegalEntityName;
      //  //                   // appointment.Location = request.City;
      //  //                    appointment.Status = 0;
      //  //                    appointment.Type = 0;
      //  //                    appointment.Label = 1;
      //  //                    appointment.AllDay = false;
      //  //                    appointment.UniqueID = request.IdTechnicRequest;
      //  //                    result.Add(appointment);
      //  //                }
      //  //            }
      //  //        }
      //  //    }
      //  //    return result;
      //  //}
      //  #endregion
      //  #region TechnicRequestStatuses - moved
      //  ///// <summary>
      //  ///// Список статус заявки на обучение
      //  ///// </summary>
      //  //public static List<TechnicRequestStatuses> TechnicRequestStatuses
      //  //{
      //  //    get { return Entities.TechnicRequestStatuses.ToList(); }
      //  //}

      //  ///// <summary>
      //  ///// Получить статус заявки на обучение по Id
      //  ///// </summary>
      //  ///// <param name="idTechnicRequestStatus">Id статуса заявки на обучение</param>
      //  ///// <returns>заявка на обучение</returns>
      //  //public static TechnicRequestStatuses GetTechnicRequestStatusbyId(int idTechnicRequestStatus)
      //  //{
      //  //    TechnicRequestStatuses _result = null;
      //  //    foreach (TechnicRequestStatuses trainingRequestStatus in TechnicRequestStatuses)
      //  //    {
      //  //        if (trainingRequestStatus.IdTechnicRequestStatus == idTechnicRequestStatus)
      //  //        {
      //  //            _result = trainingRequestStatus;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  ///// <summary>
      //  ///// получение локализованного списка значений
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedTechnicRequestStatusesNames(string culture)
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (TechnicRequestStatuses item in TechnicRequestStatuses)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdTechnicRequestStatus;
      //  //        listItem.ParentCollection = TechnicRequestStatuses;
      //  //        if (culture.Contains("ru"))
      //  //        {
      //  //            listItem.LocaLizedString = item.NameRu;
      //  //        }
      //  //        else
      //  //        {
      //  //            listItem.LocaLizedString = item.NameEn;
      //  //        }
      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  ///// <summary>
      //  ///// Обновление статуса заявки на обучение
      //  ///// </summary>
      //  ///// <param name="trainingRequestStatusItem">статус заявки на обучение</param>
      //  //public static void TechnicRequestStatusesUpdate(TechnicRequestStatuses trainingRequestStatusItem)
      //  //{
      //  //    if (trainingRequestStatusItem != null)
      //  //    {
      //  //        TechnicRequestStatuses trainingRequestStatusUpdate =
      //  //            GetTechnicRequestStatusbyId(trainingRequestStatusItem.IdTechnicRequestStatus);
      //  //        if (trainingRequestStatusUpdate != null)
      //  //        {
      //  //            trainingRequestStatusUpdate.NameEn = trainingRequestStatusItem.NameEn;
      //  //            trainingRequestStatusUpdate.NameRu = trainingRequestStatusItem.NameRu;
      //  //            trainingRequestStatusUpdate.DescriptionEn = trainingRequestStatusItem.DescriptionEn;
      //  //            trainingRequestStatusUpdate.DescriptionRu = trainingRequestStatusItem.DescriptionRu;

      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Добавление статуса заявки на обучение
      //  ///// </summary>
      //  ///// <param name="trainingRequestStatusItem">статус заявки на обучение</param>
      //  //public static void TechnicRequestStatusesInsert(TechnicRequestStatuses trainingRequestStatusItem)
      //  //{
      //  //    Entities.TechnicRequestStatuses.Add(trainingRequestStatusItem);
      //  //    DB.Save();
      //  //}

      //  ///// <summary>
      //  ///// Удаление статуса заявки на обучение
      //  ///// </summary>
      //  ///// <param name="trainingRequestStatusItem">статус заявки на обучение</param>
      //  //public static void TechnicRequestStatusesDelete(TechnicRequestStatuses trainingRequestStatusItem)
      //  //{
      //  //    if (trainingRequestStatusItem != null)
      //  //    {
      //  //        TechnicRequestStatuses trainingRequestStatusDel =
      //  //            GetTechnicRequestStatusbyId(trainingRequestStatusItem.IdTechnicRequestStatus);
      //  //        if (trainingRequestStatusDel != null)
      //  //        {
      //  //            Entities.TechnicRequestStatuses.Remove(trainingRequestStatusDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}
      //  #endregion
      //  #region TechnicRequestsVisitsTypes - moved
      //  //public static List<TechnicRequestsVisitsTypes> TechnicRequestsVisitsTypes
      //  //{
      //  //    get { return Entities.TechnicRequestsVisitsTypes.ToList(); }
      //  //}

      //  //public static TechnicRequestsVisitsTypes GetTechnicRequestsVisitsTypebyId(int idTechnicRequestsVisitsType)
      //  //{
      //  //    TechnicRequestsVisitsTypes _result = null;
      //  //    foreach (TechnicRequestsVisitsTypes technicRequestsVisitsType in TechnicRequestsVisitsTypes)
      //  //    {
      //  //        if (technicRequestsVisitsType.IdTechnicRequestsVisitsType == idTechnicRequestsVisitsType)
      //  //        {
      //  //            _result = technicRequestsVisitsType;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  ///// <summary>
      //  ///// получить привязку заявки к типу выезда по ИД заявки и ИД типа выезда
      //  ///// </summary>
      //  ///// <param name="idRequest"></param>
      //  ///// <param name="idVisitsType"></param>
      //  ///// <returns></returns>
      //  //public static TechnicRequestsVisitsTypes GetTechnicRequestsVisitsTypebyId(int idRequest, int idVisitsType)
      //  //{
      //  //    foreach (var item in DB.TechnicRequestsVisitsTypes)
      //  //    {
      //  //        if (item.IdTechnicRequest == idRequest && item.IdVisitsType == idVisitsType)
      //  //            return item;
      //  //    }
      //  //    return null;
      //  //}

      //  //public static void TechnicRequestsVisitsTypesUpdate(TechnicRequestsVisitsTypes technicRequestsVisitsTypeItem)
      //  //{
      //  //    if (technicRequestsVisitsTypeItem != null)
      //  //    {
      //  //        TechnicRequestsVisitsTypes technicRequestsVisitsTypeUpdate = GetTechnicRequestsVisitsTypebyId(technicRequestsVisitsTypeItem.IdTechnicRequestsVisitsType);
      //  //        if (technicRequestsVisitsTypeUpdate != null)
      //  //        {
      //  //            technicRequestsVisitsTypeUpdate.IdTechnicRequest = technicRequestsVisitsTypeItem.IdTechnicRequest;
      //  //            technicRequestsVisitsTypeUpdate.IdVisitsType = technicRequestsVisitsTypeItem.IdVisitsType;
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  //public static void TechnicRequestsVisitsTypesInsert(TechnicRequestsVisitsTypes technicRequestsVisitsTypeItem)
      //  //{
      //  //    Entities.TechnicRequestsVisitsTypes.Add(technicRequestsVisitsTypeItem);
      //  //    DB.Save();
      //  //}

      //  //public static void TechnicRequestsVisitsTypesDelete(TechnicRequestsVisitsTypes technicRequestsVisitsTypeItem)
      //  //{
      //  //    if (technicRequestsVisitsTypeItem != null)
      //  //    {
      //  //        TechnicRequestsVisitsTypes technicRequestsVisitsTypeDel = GetTechnicRequestsVisitsTypebyId(technicRequestsVisitsTypeItem.IdTechnicRequestsVisitsType);
      //  //        if (technicRequestsVisitsTypeDel != null)
      //  //        {
      //  //            Entities.TechnicRequestsVisitsTypes.Remove(technicRequestsVisitsTypeDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}
      //  #endregion
      //  #region TechnicRequest - moved
      //  ///// <summary>
      //  ///// Заявки на выезды
      //  ///// </summary>
      //  //public static List<TechnicRequests> TechnicRequests
      //  //{
      //  //    get { return Entities.TechnicRequests.ToList(); }
      //  //}

      //  ///// <summary>
      //  ///// вернуть заявку по ИД или null
      //  ///// </summary>
      //  ///// <param name="id"></param>
      //  ///// <returns></returns>
      //  //public static TechnicRequests GetTechnicRequestById(int id)
      //  //{
      //  //    return id < 0 ? null : Enumerable.FirstOrDefault(TechnicRequests, item => item.IdTechnicRequest == id);
      //  //}

      //  ///// <summary>
      //  ///// сохранение новой заявки в базу
      //  ///// </summary>
      //  ///// <param name="item"></param>
      //  //public static void TechnicRequestInsert(TechnicRequests item)
      //  //{
      //  //    DB.FillTechnicRequest(item);
      //  //    Entities.TechnicRequests.Add(item);
      //  //    DB.Save();
      //  //    return;
      //  //}

      //  ///// <summary>
      //  ///// обновление заявки в базе
      //  ///// </summary>
      //  ///// <param name="item"></param>
      //  //public static void TechnicRequestUpdate(TechnicRequests item)
      //  //{
      //  //    if (item == null) return;
      //  //    DB.FillTechnicRequest(item);
      //  //    var updateItem = DB.GetTechnicRequestById(item.IdTechnicRequest);
      //  //    if (updateItem == null) return;
      //  //    updateItem.IdCustomer = item.IdCustomer;
      //  //    updateItem.IdLegalEntity = item.IdLegalEntity;
      //  //    updateItem.IdContact = item.IdContact;
      //  //    updateItem.IdAddress = item.IdAddress;
      //  //    updateItem.IdTechnicRequestStatus = item.IdTechnicRequestStatus;
      //  //    updateItem.CreateDate = item.CreateDate;
      //  //    updateItem.BeginDate = item.BeginDate;
      //  //    updateItem.EndDate = item.EndDate;
      //  //    updateItem.PlannedDate = item.PlannedDate;
      //  //    //updateItem.CreateDate = DateTime.Now.Date;
      //  //    //updateItem.BeginDate = DateTime.Now.Date;
      //  //    //updateItem.EndDate = DateTime.Now.Date;
      //  //    //updateItem.PlannedDate = DateTime.Now.Date;
      //  //    updateItem.Comments = item.Comments;
      //  //    updateItem.IdTechnic = item.IdTechnic;
      //  //    updateItem.Duration = item.Duration;
      //  //    DB.Save();
      //  //}

      //  ///// <summary>
      //  ///// заполняет нулевые значения пустыми строками
      //  ///// </summary>
      //  ///// <param name="item"></param>
      //  //public static void FillTechnicRequest(TechnicRequests item)
      //  //{
      //  //    if (string.IsNullOrEmpty(item.Comments)) item.Comments = "";
      //  //}

      //  ///// <summary>
      //  ///// Добавление списка типов выездов к заявке
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="visitsTypesList"></param>
      //  //public static void TechnicRequestAddVisitsTypes(TechnicRequests request, List<VisitsTypes> visitsTypesList)
      //  //{
      //  //    if (!(visitsTypesList.Count > 0)) return;
      //  //    if (request == null) return;
      //  //    foreach (var item in visitsTypesList)
      //  //    {
      //  //        var bindingItem = new TechnicRequestsVisitsTypes
      //  //                              {
      //  //                                  IdTechnicRequest = request.IdTechnicRequest,
      //  //                                  IdVisitsType = item.IdVisitsType
      //  //                              };
      //  //        bindingItem.Create();
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Обновление типов выездов к заявке
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="newList"></param>
      //  //public static void TechnicRequestUpdateVisitsTypes(TechnicRequests request, List<VisitsTypes> newList)
      //  //{
      //  //    if (request == null) return;
      //  //    var oldList = DB.GetVisitsTypesListByRequestId(request.IdTechnicRequest);
      //  //    if (oldList.Count == 0)
      //  //    {
      //  //        DB.TechnicRequestAddVisitsTypes(request, newList);
      //  //        return;
      //  //    }

      //  //    //формирование списка на удаление
      //  //    var delList = new List<VisitsTypes>();
      //  //    foreach (var oldItem in oldList)
      //  //    {
      //  //        if (!newList.Contains(oldItem))
      //  //            delList.Add(oldItem);
      //  //    }

      //  //    //удаление типов выездов
      //  //    DB.TechnicRequestDeleteVisitsTypes(request, delList);

      //  //    //формирование списка на добавление 
      //  //    var addList = new List<VisitsTypes>();
      //  //    foreach (var addItem in newList)
      //  //    {
      //  //        if (!oldList.Contains(addItem))
      //  //            addList.Add(addItem);
      //  //    }

      //  //    //добавление новых элементов
      //  //    DB.TechnicRequestAddVisitsTypes(request, addList);
      //  //}

      //  ///// <summary>
      //  ///// Удаление списка привязок типов выездов к заявкам
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="visitsTypesList"></param>
      //  //public static void TechnicRequestDeleteVisitsTypes(TechnicRequests request, List<VisitsTypes> visitsTypesList)
      //  //{
      //  //    if (request == null) return;
      //  //    foreach (var item in visitsTypesList)
      //  //    {
      //  //        var bindingItem = DB.GetTechnicRequestsVisitsTypebyId(request.IdTechnicRequest, item.IdVisitsType);
      //  //        if (bindingItem != null)
      //  //            DB.TechnicRequestsVisitsTypesDelete(bindingItem);
      //  //    }
      //  //    return;
      //  //}

      //  ///// <summary>
      //  ///// Добавление списка систем к заявке
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="productSystemsList"></param>
      //  //public static void TechnicRequestAddProductSystems(TechnicRequests request, List<ProductSystems> productSystemsList)
      //  //{
      //  //    if (!(productSystemsList.Count > 0)) return;
      //  //    if (request == null) return;
      //  //    foreach (var item in productSystemsList)
      //  //    {
      //  //        var bindingItem = new TechnicRequestsProductSystems
      //  //                              {
      //  //                                  IdProductSystem = item.IdProductSystem,
      //  //                                  IdTechnicRequest = request.IdTechnicRequest
      //  //                              };
      //  //        bindingItem.Create();
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// Обновление списка систем
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="newList"></param>
      //  //public static void TechnicRequestUpdateProductSystems(TechnicRequests request, List<ProductSystems> newList)
      //  //{
      //  //    if (request == null) return;
      //  //    var oldList = DB.GetProductSystemsListByRequestId(request.IdTechnicRequest);

      //  //    //если список пус - добавление всех элементов
      //  //    if (oldList.Count == 0)
      //  //    {
      //  //        DB.TechnicRequestAddProductSystems(request, newList);
      //  //        return;
      //  //    }

      //  //    //формирование списка на удаление
      //  //    var delList = new List<ProductSystems>();
      //  //    foreach (var oldItem in oldList)
      //  //    {
      //  //        if (!newList.Contains(oldItem))
      //  //            delList.Add(oldItem);
      //  //    }

      //  //    //удаление 
      //  //    DB.TechnicRequestDeleteProductSystems(request, delList);

      //  //    //формирование списка на добавление 
      //  //    var addList = new List<ProductSystems>();
      //  //    foreach (var addItem in newList)
      //  //    {
      //  //        if (!oldList.Contains(addItem))
      //  //            addList.Add(addItem);
      //  //    }

      //  //    //добавление новых элементов
      //  //    DB.TechnicRequestAddProductSystems(request, addList);

      //  //    return;
      //  //}

      //  ///// <summary>
      //  ///// удаление списка привязок систем к заявкам из базы
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="delList"></param>
      //  //public static void TechnicRequestDeleteProductSystems(TechnicRequests request, List<ProductSystems> delList)
      //  //{
      //  //    if (request == null) return;
      //  //    if (delList.Count == 0) return;
      //  //    foreach (var item in delList)
      //  //    {
      //  //        var bindingItem = DB.GetTechnicRequestsProductSystemById(request.IdTechnicRequest, item.IdProductSystem);
      //  //        if (bindingItem != null)
      //  //            bindingItem.Delete();
      //  //    }
      //  //    return;
      //  //}

      //  ///// <summary>
      //  ///// добавление аттачмента к заявке
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="attachmentsList"></param>
      //  //public static void TechnicRequestAddAttachments(TechnicRequests request, List<TechnicRequestAttachments> attachmentsList)
      //  //{
      //  //    if (!(attachmentsList.Count > 0)) return;
      //  //    if (request == null) return;
      //  //    var requestNew = DB.GetTechnicRequestById(request.IdTechnicRequest);
      //  //    if (requestNew != null)
      //  //    {
      //  //        foreach (var item in attachmentsList)
      //  //        {
      //  //            requestNew.TechnicRequestAttachments.Add(item);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  ///// <summary>
      //  ///// получить список оборудования, прикрепленный к заявке
      //  ///// </summary>
      //  ///// <param name="idRequest"></param>
      //  ///// <returns></returns>
      //  //public static List<Equipments> GetEquipmentsListByRequestId(int idRequest)
      //  //{
      //  //    var result = new List<Equipments>();
      //  //    var request = DB.GetTechnicRequestById(idRequest);
      //  //    if (request == null) return result;
      //  //    if (request.TechnicRequestsEquipments == null) return result;
      //  //    foreach (var item in request.TechnicRequestsEquipments)
      //  //    {
      //  //        if (item.Equipments != null)
      //  //            result.Add(item.Equipments);
      //  //    }
      //  //    return result;
      //  //}

      //  ///// <summary>
      //  ///// получить список заявок клиента
      //  ///// </summary>
      //  ///// <param name="idCustomer"></param>
      //  ///// <returns></returns>
      //  //public static List<TechnicRequests> GetTechnicRequestsByCustomerId(int idCustomer)
      //  //{
      //  //    var result = new List<TechnicRequests>();
      //  //    if (idCustomer < 1) return result;
      //  //    if (DB.TechnicRequests == null) return result;
      //  //    foreach (var item in DB.TechnicRequests)
      //  //    {
      //  //        if (item.IdCustomer == idCustomer)
      //  //            result.Add(item);
      //  //    }
      //  //    return result;
      //  //}

      //  ///// <summary>
      //  ///// получить список заявок конкретного техника
      //  ///// </summary>
      //  ///// <param name="user"></param>
      //  ///// <returns></returns>
      //  //public static List<TechnicRequests> GetTechnicRequestsByUser(Database.Model.Users user)
      //  //{
      //  //    var result = new List<TechnicRequests>();
      //  //    if (user == null) return result;
      //  //    if (DB.TechnicRequests == null) return result;
      //  //    foreach (var item in DB.TechnicRequests)
      //  //    {
      //  //        if (item.IdTechnic == user.IdUser)
      //  //            result.Add(item);
      //  //    }
      //  //    return result;
      //  //}
      //  #endregion
      //  #region TechnicRequestAttachments - moved
      //  //public static List<TechnicRequestAttachments> TechnicRequestAttachments
      //  //{
      //  //    get { return Entities.TechnicRequestAttachments.ToList(); }
      //  //}

      //  ///// <summary>
      //  ///// получить аттачмент по ИД
      //  ///// </summary>
      //  ///// <param name="id"></param>
      //  ///// <returns></returns>
      //  //public static TechnicRequestAttachments GetTechnicRequestAttachmentById(int id)
      //  //{
      //  //    return id < 1 ? null : Enumerable.FirstOrDefault(DB.TechnicRequestAttachments, item => item.IdTechnicRequestAttachment == id);
      //  //}
      //  #endregion
      //  #region TechnicRequestsProductSystems - moved
      //  ///// <summary>
      //  ///// привязки заявок к системам
      //  ///// </summary>
      //  //public static List<TechnicRequestsProductSystems> TechnicRequestsProductSystems
      //  //{
      //  //    get { return Entities.TechnicRequestsProductSystems.ToList(); }
      //  //}

      //  ///// <summary>
      //  ///// получить привязку заявки к системе по ИД
      //  ///// </summary>
      //  ///// <param name="id"></param>
      //  ///// <returns></returns>
      //  //public static TechnicRequestsProductSystems GetTechnicRequestsProductSystemById(int id)
      //  //{
      //  //    return id < 1 ? null : Enumerable.FirstOrDefault(DB.TechnicRequestsProductSystems, item => item.IdTechnicRequestsProductSystem == id);
      //  //}

      //  //public static TechnicRequestsProductSystems GetTechnicRequestsProductSystemById(int idRequest, int idProductSystem)
      //  //{
      //  //    if (DB.TechnicRequestsProductSystems == null) return null;
      //  //    foreach (var item in DB.TechnicRequestsProductSystems)
      //  //    {
      //  //        if (item.IdProductSystem == idProductSystem && item.IdTechnicRequest == idRequest)
      //  //            return item;
      //  //    }
      //  //    return null;
      //  //}
      //  #endregion
      //  #region TechnicRequestsEquipments - moved
      //  ///// <summary>
      //  ///// привязки заявки к оборудованию
      //  ///// </summary>
      //  //public static List<TechnicRequestsEquipments> TechnicRequestsEquipments
      //  //{
      //  //    get { return Entities.TechnicRequestsEquipments.ToList(); }
      //  //}

      //  ///// <summary>
      //  ///// получить привязку заявки к оборудованию по ИД
      //  ///// </summary>
      //  //public static TechnicRequestsEquipments GetTechnicRequestsEquipmentbyId(int idTechnicRequestsEquipment)
      //  //{
      //  //    TechnicRequestsEquipments _result = null;
      //  //    foreach (TechnicRequestsEquipments technicRequestsEquipment in TechnicRequestsEquipments)
      //  //    {
      //  //        if (technicRequestsEquipment.IdTechnicRequestsEquipment == idTechnicRequestsEquipment)
      //  //        {
      //  //            _result = technicRequestsEquipment;
      //  //            break;
      //  //        }
      //  //    }
      //  //    return _result;
      //  //}

      //  //public static void TechnicRequestsEquipmentsUpdate(TechnicRequestsEquipments technicRequestsEquipmentItem)
      //  //{
      //  //    if (technicRequestsEquipmentItem != null)
      //  //    {
      //  //        TechnicRequestsEquipments technicRequestsEquipmentUpdate = GetTechnicRequestsEquipmentbyId(technicRequestsEquipmentItem.IdTechnicRequestsEquipment);
      //  //        if (technicRequestsEquipmentUpdate != null)
      //  //        {
      //  //            technicRequestsEquipmentUpdate.IdEquipment = technicRequestsEquipmentItem.IdEquipment;
      //  //            technicRequestsEquipmentUpdate.IdTechnicRequest = technicRequestsEquipmentItem.IdTechnicRequest;
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  //public static void TechnicRequestsEquipmentsUpdate(TechnicRequests request, List<TechnicRequestsEquipments> newList)
      //  //{
      //  //    if (request == null) return;

      //  //    //формирование старого списка
      //  //    var oldList = DB.GetBindingsEquipmentsListByRequestId(request.IdTechnicRequest);

      //  //    if (newList.Count == 0)
      //  //    {
      //  //        DB.TechnicRequestsEquipmentsDelete(request, oldList);
      //  //        return;
      //  //    }

      //  //    //формирование списка на удаление
      //  //    var delList = new List<TechnicRequestsEquipments>();
      //  //    foreach (var oldItem in oldList)
      //  //    {
      //  //        bool contains = false;
      //  //        foreach (var newItem in newList)
      //  //        {
      //  //            if (newItem.IdEquipment == oldItem.IdEquipment)
      //  //                contains = true;
      //  //        }
      //  //        if (!contains)
      //  //        {
      //  //            if (!delList.Contains(oldItem))
      //  //                delList.Add(oldItem);
      //  //        }
      //  //    }

      //  //    //удаление элементов
      //  //    DB.TechnicRequestsEquipmentsDelete(request, delList);

      //  //    //формирование списка на добавление 
      //  //    //если элемент не содержится в старом списке
      //  //    var addList = new List<TechnicRequestsEquipments>();
      //  //    foreach (var newItem in newList)
      //  //    {
      //  //        bool contains = false;
      //  //        foreach (var oldItem in oldList)
      //  //        {
      //  //            if (newItem.IdEquipment == oldItem.IdEquipment)
      //  //                contains = true;
      //  //        }
      //  //        if (!contains)
      //  //        {
      //  //            if (!addList.Contains(newItem))
      //  //                addList.Add(newItem);
      //  //        }
      //  //    }

      //  //    //добавление новых элементов
      //  //    DB.TechnicRequestsEquipmentsInsert(request, addList);

      //  //    return;
      //  //}

      //  //public static void TechnicRequestsEquipmentsInsert(TechnicRequestsEquipments item)
      //  //{
      //  //    var newItem = new TechnicRequestsEquipments();
      //  //    newItem.IdEquipment = item.IdEquipment;
      //  //    newItem.IdTechnicRequest = item.IdTechnicRequest;
      //  //    newItem.IssueDate = item.IssueDate;
      //  //    newItem.EquipmentCount = item.EquipmentCount;
      //  //    Entities.TechnicRequestsEquipments.Add(newItem);
      //  //    //Entities.TechnicRequestsEquipments.Add(item);
      //  //    DB.Save();
      //  //}

      //  ///// <summary>
      //  ///// добавляет в элементы списка кол-во, дату и записывает список в базу 
      //  ///// </summary>
      //  ///// <param name="request"></param>
      //  ///// <param name="list"></param>
      //  //public static void TechnicRequestsEquipmentsInsert(TechnicRequests request, List<TechnicRequestsEquipments> list)
      //  //{
      //  //    foreach (var item in list)
      //  //    {
      //  //        //item.IssueDate = customerEqupmentItem.IssueDate;
      //  //        //item.IssueDate = DateTime.Now;
      //  //        //item.EquipmentCount = customerEqupmentItem.EquipmentCount;
      //  //        item.IdTechnicRequestsEquipment = -1;
      //  //        item.IdTechnicRequest = request.IdTechnicRequest;
      //  //        DB.TechnicRequestsEquipmentsInsert(item);
      //  //    }
      //  //    return;
      //  //}

      //  //public static void TechnicRequestsEquipmentsDelete(TechnicRequestsEquipments technicRequestsEquipmentItem)
      //  //{
      //  //    if (technicRequestsEquipmentItem != null)
      //  //    {
      //  //        TechnicRequestsEquipments technicRequestsEquipmentDel = GetTechnicRequestsEquipmentbyId(technicRequestsEquipmentItem.IdTechnicRequestsEquipment);
      //  //        if (technicRequestsEquipmentDel != null)
      //  //        {
      //  //            Entities.TechnicRequestsEquipments.Remove(technicRequestsEquipmentDel);
      //  //            DB.Save();
      //  //        }
      //  //    }
      //  //}

      //  //public static void TechnicRequestsEquipmentsDelete(TechnicRequests request, List<TechnicRequestsEquipments> list)
      //  //{
      //  //    if (request == null || list.Count == 0) return;
      //  //    foreach (var item in list)
      //  //    {
      //  //        DB.TechnicRequestsEquipmentsDelete(item);
      //  //    }
      //  //    return;
      //  //}

      //  ///// <summary>
      //  ///// получения листа привязок оборудования к заявке по ИД заявки
      //  ///// </summary>
      //  ///// <param name="idRequest"></param>
      //  ///// <returns></returns>
      //  //public static List<TechnicRequestsEquipments> GetBindingsEquipmentsListByRequestId(int idRequest)
      //  //{
      //  //    var result = new List<TechnicRequestsEquipments>();
      //  //    foreach (var item in DB.TechnicRequestsEquipments)
      //  //    {
      //  //        if (item.IdTechnicRequest == idRequest)
      //  //            result.Add(item);
      //  //    }
      //  //    return result;
      //  //}
      //  #endregion
      //  #region VisitsTypes - moved
      //      ///// <summary>
      //      ///// Список типов выездов
      //      ///// </summary>
      //      //public static List<VisitsTypes> VisitsTypes
      //      //{
      //      //    get { return Entities.VisitsTypes.ToList(); }
      //      //}

      //      ///// <summary>
      //      ///// Активные типы выездов
      //      ///// </summary>
      //      //public static IEnumerable<VisitsTypes> VisitsTypesActive
      //      //{
      //      //    get
      //      //    {
      //      //        return
      //      //            VisitsTypes.Where(p => p.IsActive == true);
      //      //    }
      //      //}

      //      ///// <summary>
      //      ///// Получить тип выезда по Id
      //      ///// </summary>
      //      ///// <param name="idVisitsType">Id типа выезда</param>
      //      ///// <returns>тип выезда</returns>
      //      //public static VisitsTypes GetVisitsTypebyId(int idVisitsType)
      //      //{
      //      //    VisitsTypes _result = null;
      //      //    foreach (VisitsTypes visitsType in VisitsTypes)
      //      //    {
      //      //        if (visitsType.IdVisitsType == idVisitsType)
      //      //        {
      //      //            _result = visitsType;
      //      //            break;
      //      //        }
      //      //    }
      //      //    return _result;
      //      //}

      //      ///// <summary>
      //      ///// Обновление типа выезда
      //      ///// </summary>
      //      ///// <param name="visitsTypeItem">тип выезда</param>
      //      //public static void VisitsTypesUpdate(VisitsTypes visitsTypeItem)
      //      //{
      //      //    if (visitsTypeItem != null)
      //      //    {
      //      //        VisitsTypes visitsTypeUpdate = GetVisitsTypebyId(visitsTypeItem.IdVisitsType);
      //      //        if (visitsTypeUpdate != null)
      //      //        {
      //      //            visitsTypeUpdate.IsActive = visitsTypeItem.IsActive;
      //      //            visitsTypeUpdate.VisitsType = visitsTypeItem.VisitsType;
      //      //            visitsTypeUpdate.DescriptionEn = visitsTypeItem.DescriptionEn;
      //      //            visitsTypeUpdate.DescriptionRu = visitsTypeItem.DescriptionRu;

      //      //            DB.Save();
      //      //        }
      //      //    }
      //      //}

      //      ///// <summary>
      //      ///// Добавление типа выезда
      //      ///// </summary>
      //      ///// <param name="visitsTypeItem">тип выезда</param>
      //      //public static void VisitsTypesInsert(VisitsTypes visitsTypeItem)
      //      //{
      //      //    Entities.VisitsTypes.Add(visitsTypeItem);
      //      //    DB.Save();
      //      //}

      //      ///// <summary>
      //      ///// Удаление типа выезда
      //      ///// </summary>
      //      ///// <param name="visitsTypeItem">тип выезда</param>
      //      //public static void VisitsTypesDelete(VisitsTypes visitsTypeItem)
      //      //{
      //      //    if (visitsTypeItem != null)
      //      //    {
      //      //        VisitsTypes visitsTypeDel = GetVisitsTypebyId(visitsTypeItem.IdVisitsType);
      //      //        if (visitsTypeDel != null)
      //      //        {
      //      //            Entities.VisitsTypes.Remove(visitsTypeDel);
      //      //            DB.Save();
      //      //        }
      //      //    }
      //      //}

      //      ///// <summary>
      //      ///// Получение списка типов выездов, на первом месте которого тип выезда с названием "Выбрать всех"
      //      ///// </summary>
      //      ///// <returns></returns>
      //      //public static List<VisitsTypes> GetTechnicVisitsTypesForDropDownList()
      //      //{
      //      //    var result = new List<VisitsTypes>();
      //      //    var selectAllItem = new VisitsTypes { VisitsType = "Выбрать всех" };
      //      //    result.Add(selectAllItem);
      //      //    result.AddRange(DB.VisitsTypes.OrderBy(p => p.IdVisitsType));
      //      //    return result;
      //      //}

      //      ///// <summary>
      //      ///// Получает список типов выездов из строки имен разделенных сепараторами
      //      ///// </summary>
      //      ///// <param name="coursesTypesStr"></param>
      //      ///// <param name="separatorStr"></param>
      //      ///// <returns></returns>
      //      //public static List<VisitsTypes> GetVisitTypesFromString(string coursesTypesStr, char separatorStr = ';')
      //      //{
      //      //    var result = new List<VisitsTypes>();
      //      //    var visitsTypesArray = coursesTypesStr.Split(separatorStr);
      //      //    foreach (var item in visitsTypesArray)
      //      //    {
      //      //        var visitItem = DB.GetVisitsTypeByName(item.Trim());
      //      //        if (visitItem != null)
      //      //        {
      //      //            result.Add(visitItem);
      //      //        }
      //      //    }
      //      //    return result;
      //      //}

      //      ///// <summary>
      //      ///// Получить тип выезда по имени
      //      ///// </summary>
      //      ///// <param name="name"></param>
      //      ///// <returns></returns>
      //      //public static VisitsTypes GetVisitsTypeByName(string name)
      //      //{
      //      //    foreach (var item in DB.VisitsTypes)
      //      //    {
      //      //        if (item.VisitsType.Trim() == name.Trim())
      //      //        {
      //      //            return item;
      //      //        }
      //      //    }
      //      //    return null;
      //      //}

      //      /////// <summary>
      //      /////// полцчить список выездов по ИД заявки
      //      /////// </summary>
      //      /////// <param name="idRequest"></param>
      //      /////// <returns></returns>
      //      ////public static List<VisitsTypes> GetVisitsTypesListByRequestId(int idRequest)
      //      ////{
      //      ////    var result = new List<VisitsTypes>();
      //      ////    if (DB.TechnicRequestsVisitsTypes == null) return result;
      //      ////    foreach (var item in DB.TechnicRequestsVisitsTypes)
      //      ////    {
      //      ////        if (item.IdTechnicRequest == idRequest)
      //      ////        {
      //      ////            if (item.VisitsTypes != null)
      //      ////                result.Add(item.VisitsTypes);
      //      ////        }
      //      ////    }
      //      ////    return result;
      //      ////}
      //  #endregion
      //  #region ProductSystems - moved
      //      ///// <summary>
      //      ///// Список систем продуктов
      //      ///// </summary>
      //      //public static List<ProductSystems> ProductSystems
      //      //{
      //      //    get { return Entities.ProductSystems.ToList(); }
      //      //}

      //      ///// <summary>
      //      ///// Активные системы продуктов
      //      ///// </summary>
      //      //public static IEnumerable<ProductSystems> ProductSystemsActive
      //      //{
      //      //    get
      //      //    {
      //      //        return
      //      //            ProductSystems.Where(p => p.IsActive == true);
      //      //    }
      //      //}

      //      ///// <summary>
      //      ///// Получение локализованного списка значений
      //      ///// </summary>
      //      ///// <param name="culture"></param>
      //      ///// <returns></returns>
      //      //public static List<LocalizedListItem> GetLocalizedProductSystemsNames(string culture)
      //      //{
      //      //    List<LocalizedListItem> result = null;
      //      //    foreach (ProductSystems item in ProductSystems)
      //      //    {
      //      //        if (result == null) result = new List<LocalizedListItem>();
      //      //        var listItem = new LocalizedListItem();
      //      //        listItem.Id = item.IdProductSystem;
      //      //        listItem.ParentCollection = ProductSystems;
      //      //        if (culture.Contains("ru"))
      //      //        {
      //      //            listItem.LocaLizedString = item.ProductSystemRu;
      //      //        }
      //      //        else
      //      //        {
      //      //            listItem.LocaLizedString = item.ProductSystemEn;
      //      //        }
      //      //        result.Add(listItem);
      //      //    }
      //      //    return result;
      //      //}

      //      ///// <summary>
      //      ///// Получить систему продуктов по Id
      //      ///// </summary>
      //      ///// <param name="idProductSystem">Id системы продуктов</param>
      //      ///// <returns>система продуктов</returns>
      //      //public static ProductSystems GetProductSystembyId(int idProductSystem)
      //      //{
      //      //    ProductSystems _result = null;
      //      //    foreach (ProductSystems productSystem in ProductSystems)
      //      //    {
      //      //        if (productSystem.IdProductSystem == idProductSystem)
      //      //        {
      //      //            _result = productSystem;
      //      //            break;
      //      //        }
      //      //    }
      //      //    return _result;
      //      //}

      //      ///// <summary>
      //      ///// Обновление системы продукта
      //      ///// </summary>
      //      ///// <param name="productSystemItem">система продукта</param>
      //      //public static void ProductSystemsUpdate(ProductSystems productSystemItem)
      //      //{
      //      //    if (productSystemItem != null)
      //      //    {
      //      //        ProductSystems productSystemUpdate = GetProductSystembyId(productSystemItem.IdProductSystem);
      //      //        if (productSystemUpdate != null)
      //      //        {
      //      //            productSystemUpdate.IsActive = productSystemItem.IsActive;
      //      //            productSystemUpdate.ProductSystemDe = productSystemItem.ProductSystemDe;
      //      //            productSystemUpdate.ProductSystemEn = productSystemItem.ProductSystemEn;
      //      //            productSystemUpdate.ProductSystemRu = productSystemItem.ProductSystemRu;
      //      //            productSystemUpdate.ProductSystemSAP = productSystemItem.ProductSystemSAP;
      //      //            productSystemUpdate.IdProductMark = productSystemItem.IdProductMark;
      //      //            DB.FillProductSystem(productSystemUpdate);
      //      //            DB.Save();
      //      //        }
      //      //    }
      //      //}

      //      ///// <summary>
      //      ///// Добавление системы продукта
      //      ///// </summary>
      //      ///// <param name="productSystemItem">система продукта</param>
      //      //public static void ProductSystemsInsert(ProductSystems productSystemItem)
      //      //{
      //      //    DB.FillProductSystem(productSystemItem);
      //      //    Entities.ProductSystems.Add(productSystemItem);
      //      //    DB.Save();
      //      //}

      //      ///// <summary>
      //      ///// Удаление населенного пункта
      //      ///// </summary>
      //      ///// <param name="productSystemItem">населенный пункт</param>
      //      //public static void ProductSystemsDelete(ProductSystems productSystemItem)
      //      //{
      //      //    if (productSystemItem != null)
      //      //    {
      //      //        ProductSystems productSystemDel = GetProductSystembyId(productSystemItem.IdProductSystem);
      //      //        if (productSystemDel != null)
      //      //        {
      //      //            Entities.ProductSystems.Remove(productSystemDel);
      //      //            DB.Save();
      //      //        }
      //      //    }
      //      //}

      //      ///// <summary>
      //      ///// Заполняет нулевые значения пустыми строками
      //      ///// </summary>
      //      ///// <param name="item"></param>
      //      //public static void FillProductSystem(ProductSystems item)
      //      //{
      //      //    if (item == null) return;
      //      //    if (string.IsNullOrEmpty(item.ProductSystemDe)) item.ProductSystemDe = "";
      //      //    if (string.IsNullOrEmpty(item.ProductSystemEn)) item.ProductSystemEn = "";
      //      //    if (string.IsNullOrEmpty(item.ProductSystemRu)) item.ProductSystemRu = "";
      //      //    if (string.IsNullOrEmpty(item.IdUser)) item.IdUser = "";
      //      //}

      //      ///// <summary>
      //      ///// Получить список систем клиента
      //      ///// </summary>
      //      ///// <param name="customer"></param>
      //      ///// <returns></returns>
      //      //public static List<ProductSystems> GetProdustSystemsListByCustomer(Customers customer)
      //      //{
      //      //    var result = new List<ProductSystems>();
      //      //    if (customer == null) return result;
      //      //    if (customer.CustomersProductSystems == null) return result;
      //      //    foreach (var item in customer.CustomersProductSystems)
      //      //    {
      //      //        if(item.ProductSystems !=null)
      //      //            result.Add(item.ProductSystems);
      //      //    }
      //      //    return result;
      //      //}

      //      /////// <summary>
      //      /////// Получить список систем клиента
      //      /////// </summary>
      //      /////// <param name="idCustomer"></param>
      //      /////// <returns></returns>
      //      ////public static List<ProductSystems> GetProdustSystemsListByCustomerId(int idCustomer)
      //      ////{
      //      ////    var result = new List<ProductSystems>();
      //      ////    if (idCustomer < 1) return result;
      //      ////    if (DB.CustomersProductsSystems == null) return result;
      //      ////    foreach (var bindingItem in DB.CustomersProductSystems)
      //      ////    {
      //      ////        if(bindingItem.IdCustomer == idCustomer)
      //      ////        {
      //      ////            var productSystm = DB.GetProductSystembyId(bindingItem.IdProductSystem);
      //      ////            if (productSystm != null)
      //      ////            {
      //      ////                result.Add(productSystm);
      //      ////            }
      //      ////        }
      //      ////    }
      //      ////    return result;
      //      ////}

      //      /////// <summary>
      //      /////// получить список систем по ИД заявки
      //      /////// </summary>
      //      /////// <param name="idRequest"></param>
      //      /////// <returns></returns>
      //      ////public static List<ProductSystems> GetProductSystemsListByRequestId(int idRequest)
      //      ////{
      //      ////    var result = new List<ProductSystems>();
      //      ////    if (DB.TechnicRequestsProductSystems == null) return result;
      //      ////    foreach (var item in DB.TechnicRequestsProductSystems)
      //      ////    {
      //      ////        if(item.IdTechnicRequest == idRequest)
      //      ////        {
      //      ////            if(item.ProductSystems!=null)
      //      ////                result.Add(item.ProductSystems);
      //      ////        }
      //      ////    }
      //      ////    return result;
      //      ////}
      //  #endregion


        #region TechnicReports - moved НЕ КОММЕНТИРОВАТЬ не удалать!

        /// <summary>
        /// заполнение набора закладок для титульного листа отчета
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static List<DocReport.DocReportParamsItem> GetTechnicBookmarksListByRequest(TechnicRequests request)
        {
            var result = new List<DocReport.DocReportParamsItem>();

            //дата - Date
            var paramId = new DocReport.DocReportParamsItem(DocBookmarks.Id, request.IdTechnicRequest.ToString());
            result.Add(paramId);

            //дата - Date
            var paramDate = new DocReport.DocReportParamsItem(DocBookmarks.Date, DateTime.Now.Date.ToLongDateString());
            result.Add(paramDate);

            //Юр Лицо - 
            var paramLegalEntityName = new DocReport.DocReportParamsItem(DocBookmarks.LegalEntityName, request.LegalEntityName);
            result.Add(paramLegalEntityName);

            //Город - 
            var paramСity = new DocReport.DocReportParamsItem(DocBookmarks.Сity, request.City);
            result.Add(paramСity);

            //Телефон - 
            //if (request.Addresses != null)
            //{
                //var paramPhone = new DocReport.DocReportParamsItem(DocBookmarks.Phone, request.Addresses.Phone);
                var paramPhone = new DocReport.DocReportParamsItem(DocBookmarks.Phone, request.ContactPhone);
                result.Add(paramPhone);
            //}

            //Факс - 
            if (request.Addresses != null)
            {
                var paramFax = new DocReport.DocReportParamsItem(DocBookmarks.Fax, request.Addresses.Fax);
                result.Add(paramFax);
            }

            //Адрес производства - 
            if (request.Addresses != null)
            {
                var addressString = request.LocalizedAddressString;
                //var addressString = GetLocalizedAddressStringByTechnicRequest(request);
                var paramAddress = new DocReport.DocReportParamsItem(DocBookmarks.Address, addressString);
                result.Add(paramAddress);
            }

            //Контактное лицо - 
            if (request.Contacts != null)
            {
                var paramContactName = new DocReport.DocReportParamsItem(DocBookmarks.ContactName, request.Contacts.Name);
                result.Add(paramContactName);
            }

            //Номер производства - 
            //if (true)
            //{
            //    var paramProductionNumber = new DocReport.DocReportParamsItem(DocBookmarks.ProductionNumber, );
            //    result.Add(paramProductionNumber);
            //}

            //типы выездов:
            var visitsTypesCol = new CRM.Database.Model.VisitsTypesCollection();

            var visitsTypesList = visitsTypesCol.GetVisitsTypesListByRequestId(request.IdTechnicRequest);
            //var visitsTypesList = GetVisitsTypesListByRequestId(request.IdTechnicRequest);
            if (visitsTypesList.Count > 0)
            {
                foreach (var item in visitsTypesList)
                {
                    switch (item.IdVisitsType)
                    {
                        //Наладка
                        case 1:
                            {
                                var paramAdjustment = new DocReport.DocReportParamsItem(DocBookmarks.Adjustment, "V");
                                result.Add(paramAdjustment);
                                break;
                            }
                        //Замена/Ремонт 
                        case 2:
                            {
                                var paramRepair = new DocReport.DocReportParamsItem(DocBookmarks.Repair, "V");
                                result.Add(paramRepair);
                                break;
                            }
                        //Проверка на ДК и СОП 
                        case 3:
                            {
                                var paramChecking = new DocReport.DocReportParamsItem(DocBookmarks.Checking, "V");
                                result.Add(paramChecking);
                                break;
                            }
                        //Проверка на ДК и СОП 
                        case 4:
                            {
                                var paramInspection = new DocReport.DocReportParamsItem(DocBookmarks.Inspection, "V");
                                result.Add(paramInspection);
                                break;
                            }
                        //Проверка на ДК и СОП 
                        case 5:
                            {
                                var paramReclamation = new DocReport.DocReportParamsItem(DocBookmarks.Reclamation, "V");
                                result.Add(paramReclamation);
                                break;
                            }
                    }//end switch
                }//end foreach
            }//end visit types

            //марки профиля:
            //получить список марок в заявке

            var productSystemsCol = new CRM.Database.Model.ProductSystemsCollection();
            var productSystemsList = productSystemsCol.GetProductSystemsListByRequestId(request.IdTechnicRequest);
            //var productSystemsList = DB.GetProductSystemsListByRequestId(request.IdTechnicRequest);
            if (productSystemsList.Count < 1) return result;

            var isMarkKbe = false;
            var isMarkTrocal = false;
            var isMarkGutwerk = false;

            //цикл по списку систем
            foreach (var systemItem in productSystemsList)
            {
                //MarkKbeEtalonEngine58mm
                if (systemItem.IdProductSystem == 195 || systemItem.IdProductSystem == 196)
                {
                    var paramMarkKbeEtalonEngine58mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkKbeEtalonEngine58mm, "V");
                    if (!result.Contains(paramMarkKbeEtalonEngine58mm))
                        result.Add(paramMarkKbeEtalonEngine58mm);
                    isMarkKbe = true;
                }

                //MarkKbeExpertEnergy70mm
                if (systemItem.IdProductSystem == 197 || systemItem.IdProductSystem == 198)
                {
                    var paramMarkKbeExpertEnergy70mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkKbeExpertEnergy70mm, "V");
                    if (!result.Contains(paramMarkKbeExpertEnergy70mm))
                        result.Add(paramMarkKbeExpertEnergy70mm);
                    isMarkKbe = true;
                }

                //MarkKbeSelect70mm
                if (systemItem.IdProductSystem == 199)
                {
                    var paramMarkKbeSelect70mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkKbeSelect70mm, "V");
                    result.Add(paramMarkKbeSelect70mm);
                    isMarkKbe = true;
                }

                //MarkKbeSystem88mm
                if (systemItem.IdProductSystem == 205)
                {
                    var paramMarkKbeSystem88mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkKbeSystem88mm, "V");
                    result.Add(paramMarkKbeSystem88mm);
                    isMarkKbe = true;
                }

                //MarkTrocalSolidBalance70mm
                if (systemItem.IdProductSystem == 201 || systemItem.IdProductSystem == 202)
                {
                    var paramMarkTrocalSolidBalance70mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkTrocalSolidBalance70mm, "V");
                    if (!result.Contains(paramMarkTrocalSolidBalance70mm))
                        result.Add(paramMarkTrocalSolidBalance70mm);
                    isMarkTrocal = true;
                }

                //MarkTrocalInnonovaA570mm
                if (systemItem.IdProductSystem == 204)
                {
                    var paramMarkTrocalInnonovaA570mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkTrocalInnonovaA570mm, "V");
                    result.Add(paramMarkTrocalInnonovaA570mm);
                    isMarkTrocal = true;
                }

                //MarkTrocalInnonovaM570mm
                if (systemItem.IdProductSystem == 203)
                {
                    var paramMarkTrocalInnonovaM570mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkTrocalInnonovaM570mm, "V");
                    result.Add(paramMarkTrocalInnonovaM570mm);
                    isMarkTrocal = true;
                }

                //MarkGutwerkGutWerk58mm
                if (systemItem.IdProductSystem == 206)
                {
                    var paramMarkGutwerkGutWerk58mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkGutwerkGutWerk58mm, "V");
                    result.Add(paramMarkGutwerkGutWerk58mm);
                    isMarkGutwerk = true;
                }

                //MarkGutwerkGutWerk70mm
                //if (systemItem.IdProductSystem == XXXXXXXX)
                //{
                //    var paramMarkGutwerkGutWerk70mm = new DocReport.DocReportParamsItem(DocBookmarks.MarkGutwerkGutWerk70mm, "V");
                //    result.Add(paramMarkGutwerkGutWerk70mm);
                //    isMarkGutwerk = true;
                //}
            }

            //заполнение наличия марок
            //MarkKbe
            if (isMarkKbe)
            {
                var paramMarkKbe = new DocReport.DocReportParamsItem(DocBookmarks.MarkKbe, "V");
                result.Add(paramMarkKbe);
            }
            //MarkTrocal
            if (isMarkTrocal)
            {
                var paramMarkTrocal = new DocReport.DocReportParamsItem(DocBookmarks.MarkTrocal, "V");
                result.Add(paramMarkTrocal);
            }
            //MarkGutwerk
            if (isMarkGutwerk)
            {
                var paramMarkGutwerk = new DocReport.DocReportParamsItem(DocBookmarks.MarkGutwerk, "V");
                result.Add(paramMarkGutwerk);
            }

            return result;
        }

        /// <summary>
        /// Формирование DataTable для таблицы оборудования в отчете
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static DataTable GenerateEquipmentReportTableByRequest(CRM.Database.Model.TechnicRequests request)
        {
            var equipmentsCol = new CRM.Database.Model.EquipmentsCollection();
            var equipmentBindingList = equipmentsCol.GetBindingsEquipmentsListByRequestId(request.IdTechnicRequest);
            //var equipmentBindingList = DB.GetBindingsEquipmentsListByRequestId(request.IdTechnicRequest);
            if (equipmentBindingList.Count < 1) return null;

            var resultTable = new DataTable();
            resultTable.Columns.Add("EquipmentTypeNameRu", typeof(string));
            resultTable.Columns.Add("EquipmentTypeNameEn", typeof(string));
            resultTable.Columns.Add("EquipmentCount", typeof(string));
            resultTable.Columns.Add("VendorNameExt", typeof(string));
            resultTable.Columns.Add("ModelExt", typeof(string));
            resultTable.Columns.Add("IssueDate", typeof(string));

            foreach (var item in equipmentBindingList.OrderBy(p => p.EquipmentTypeNameRu))
            {
                var row = resultTable.NewRow();
                row["EquipmentTypeNameRu"] = item.EquipmentTypeNameRu;
                row["EquipmentTypeNameEn"] = item.EquipmentTypeNameEn;
                row["EquipmentCount"] = item.EquipmentCount.ToString();
                row["VendorNameExt"] = item.VendorNameExt;
                row["ModelExt"] = item.ModelExt;
                row["IssueDate"] = item.IssueDate.Date.ToShortDateString();
                resultTable.Rows.Add(row);
            }
            return resultTable;
        }

        ///// <summary>
        ///// Получить строку адреса из заявки на выезд
        ///// </summary>
        ///// <param name="requests"></param>
        ///// <returns></returns>
        //public static string GetLocalizedAddressStringByTechnicRequest(TechnicRequests requests)
        //{
        //    var result = "";
        //    if (requests.Addresses == null) return result;

        //    result += requests.Addresses.RegionNameLocalized + " ";
        //    //result += requests.Addresses.DistrictNameLocalized + " ";
        //    result += requests.Addresses.AreasNameLocalized + " ";
        //    result += requests.Addresses.SettlementsLocalized + " ";

        //    if (!string.IsNullOrEmpty(requests.Addresses.Street))
        //        result += Resourses.Resourses.customerStreet + ": " + requests.Addresses.Street;

        //    if (!string.IsNullOrEmpty(requests.Addresses.House))
        //        result += Resourses.Resourses.customerHouse + ": " + requests.Addresses.House;

        //    if (!string.IsNullOrEmpty(requests.Addresses.Phone))
        //        result += Resourses.Resourses.customerPhone + ": " + requests.Addresses.Phone;

        //    return result;
        //}

        #endregion

        #region TechnicRequestsExt - moved НЕ КОММЕНТИРОВАТЬ не удалать!

        /// <summary>
        /// Статический словарь для хранения уникальных расширенный заявок
        /// </summary>
        public static Dictionary<int, CRM.Database.Model.TechnicRequestsExt> TechnicRequestExtDic
        {
            get
            {
                if (_technicRequestsExtDic == null)
                    _technicRequestsExtDic = new Dictionary<int, CRM.Database.Model.TechnicRequestsExt>();
                return _technicRequestsExtDic;
            }
            set { _technicRequestsExtDic = value; }
        }
        private static Dictionary<int, CRM.Database.Model.TechnicRequestsExt> _technicRequestsExtDic;



        /// <summary>
        /// Отправить уведомление о получении заявки контактному лицу
        /// </summary>
        /// <returns>null при успешной выполнении</returns>
        public static string TechnicsSendNewMail(TechnicRequests request)
        {
            if (request == null) return "Request is null";
          //  if (request.IdContact == null) return "Request contacts is null or empty";

            var confCol = new ConfigurationsCollection();

            var sb = new StringBuilder();
            sb.AppendLine("Поступила новая заявка на выезд под номером " + request.IdTechnicRequest);
            sb.AppendLine("Клиент: " + request.LegalEntityName);
            sb.AppendLine("Регион: " + request.ProfineRegionNameLocalized);
            sb.AppendLine("Город: " + request.City);
            sb.AppendLine("Менеджер: " + request.ManagerName);
            

            return Utilites.Mail.SendMail(
                "Aleksandr.Karapetjan@profine-group.com, Maksim.Prygunkow@profine-group.com, Ramil.Wafin@profine-group.com, Ilja.Konowalow@profine-group.com", //to
            //  "maksim.prygunkow@profine-group.com",
                "robot@profine-group.com", //from
                "Поступила новая заявка на выезд под номером " + request.IdTechnicRequest, //subject
               // "Заявка зарегистрирована под номером " + request.IdTechnicRequest, //body
               sb.ToString(),
                null, //attachment
                confCol.MailServerIp, //ip
                confCol.MailServerPort //port
                );
        }


        #endregion

      //  #endregion
      //  //Техники конец /////////////////////////////////////////////////
        
      //  #region ContractsTypes

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<ContractsTypes> ContractsTypes
      //  {
      //      get { return Entities.ContractsTypes.ToList(); }
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка типов договоров
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedContractsTypesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (ContractsTypes item in ContractsTypes)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdContractsType;
      //  //        listItem.ParentCollection = ContractsTypes;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idContractsType">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static ContractsTypes GetContractsTypebyId(int idContractsType)
      //  {
      //      ContractsTypes _result = null;
      //      foreach (ContractsTypes contractsType in ContractsTypes)
      //      {
      //          if (contractsType.IdContractsType == idContractsType)
      //          {
      //              _result = contractsType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="contractsTypeItem">договор</param>
      //  public static void ContractsTypesUpdate(ContractsTypes contractsTypeItem)
      //  {
      //      if (contractsTypeItem != null)
      //      {
      //          ContractsTypes contractsTypeUpdate = GetContractsTypebyId(contractsTypeItem.IdContractsType);
      //          if (contractsTypeUpdate != null)
      //          {
      //              contractsTypeUpdate.NameRu = contractsTypeItem.NameRu;
      //              contractsTypeUpdate.NameEn = contractsTypeItem.NameEn;
      //              contractsTypeUpdate.IsActive = contractsTypeItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="contractsTypeItem">договор</param>
      //  public static void ContractsTypesInsert(ContractsTypes contractsTypeItem)
      //  {
      //      Entities.ContractsTypes.Add(contractsTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="contractsTypeItem">договор</param>
      //  public static void ContractsTypesDelete(ContractsTypes contractsTypeItem)
      //  {
      //      if (contractsTypeItem != null)
      //      {
      //          ContractsTypes contractsTypeDel = GetContractsTypebyId(contractsTypeItem.IdContractsType);
      //          if (contractsTypeDel != null)
      //          {
      //              Entities.ContractsTypes.Remove(contractsTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ConditionsTypes

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<ConditionsTypes> ConditionsTypes
      //  {
      //      get { return Entities.ConditionsTypes.ToList(); }
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка типов договоров
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedConditionsTypesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (ConditionsTypes item in ConditionsTypes)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdConditionsType;
      //  //        listItem.ParentCollection = ConditionsTypes;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idConditionsType">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static ConditionsTypes GetConditionsTypebyId(int idConditionsType)
      //  {
      //      ConditionsTypes _result = null;
      //      foreach (ConditionsTypes conditionsType in ConditionsTypes)
      //      {
      //          if (conditionsType.IdConditionsType == idConditionsType)
      //          {
      //              _result = conditionsType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="conditionsTypeItem">договор</param>
      //  public static void ConditionsTypesUpdate(ConditionsTypes conditionsTypeItem)
      //  {
      //      if (conditionsTypeItem != null)
      //      {
      //          ConditionsTypes conditionsTypeUpdate = GetConditionsTypebyId(conditionsTypeItem.IdConditionsType);
      //          if (conditionsTypeUpdate != null)
      //          {
      //              conditionsTypeUpdate.NameRu = conditionsTypeItem.NameRu;
      //              conditionsTypeUpdate.NameEn = conditionsTypeItem.NameEn;
      //              conditionsTypeUpdate.IsActive = conditionsTypeItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="conditionsTypeItem">договор</param>
      //  public static void ConditionsTypesInsert(ConditionsTypes conditionsTypeItem)
      //  {
      //      Entities.ConditionsTypes.Add(conditionsTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="conditionsTypeItem">договор</param>
      //  public static void ConditionsTypesDelete(ConditionsTypes conditionsTypeItem)
      //  {
      //      if (conditionsTypeItem != null)
      //      {
      //          ConditionsTypes conditionsTypeDel = GetConditionsTypebyId(conditionsTypeItem.IdConditionsType);
      //          if (conditionsTypeDel != null)
      //          {
      //              Entities.ConditionsTypes.Remove(conditionsTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region BonusTypes

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<BonusTypes> BonusTypes
      //  {
      //      get { return Entities.BonusTypes.ToList(); }
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка типов договоров
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedBonusTypesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (BonusTypes item in BonusTypes)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdBonusType;
      //  //        listItem.ParentCollection = BonusTypes;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idBonusType">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static BonusTypes GetBonusTypebyId(int idBonusType)
      //  {
      //      BonusTypes _result = null;
      //      foreach (BonusTypes bonusType in BonusTypes)
      //      {
      //          if (bonusType.IdBonusType == idBonusType)
      //          {
      //              _result = bonusType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="bonusTypeItem">договор</param>
      //  public static void BonusTypesUpdate(BonusTypes bonusTypeItem)
      //  {
      //      if (bonusTypeItem != null)
      //      {
      //          BonusTypes bonusTypeUpdate = GetBonusTypebyId(bonusTypeItem.IdBonusType);
      //          if (bonusTypeUpdate != null)
      //          {
      //              bonusTypeUpdate.NameRu = bonusTypeItem.NameRu;
      //              bonusTypeUpdate.NameEn = bonusTypeItem.NameEn;
      //              bonusTypeUpdate.IsActive = bonusTypeItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="bonusTypeItem">договор</param>
      //  public static void BonusTypesInsert(BonusTypes bonusTypeItem)
      //  {
      //      Entities.BonusTypes.Add(bonusTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="bonusTypeItem">договор</param>
      //  public static void BonusTypesDelete(BonusTypes bonusTypeItem)
      //  {
      //      if (bonusTypeItem != null)
      //      {
      //          BonusTypes bonusTypeDel = GetBonusTypebyId(bonusTypeItem.IdBonusType);
      //          if (bonusTypeDel != null)
      //          {
      //              Entities.BonusTypes.Remove(bonusTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region CompensationsTypes

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<CompensationsTypes> CompensationsTypes
      //  {
      //      get { return Entities.CompensationsTypes.ToList(); }
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка типов договоров
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedCompensationsTypesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (CompensationsTypes item in CompensationsTypes)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdCompensationsType;
      //  //        listItem.ParentCollection = CompensationsTypes;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idCompensationsType">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static CompensationsTypes GetCompensationsTypebyId(int idCompensationsType)
      //  {
      //      CompensationsTypes _result = null;
      //      foreach (CompensationsTypes compensationsType in CompensationsTypes)
      //      {
      //          if (compensationsType.IdCompensationsType == idCompensationsType)
      //          {
      //              _result = compensationsType;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="compensationsTypeItem">договор</param>
      //  public static void CompensationsTypesUpdate(CompensationsTypes compensationsTypeItem)
      //  {
      //      if (compensationsTypeItem != null)
      //      {
      //          CompensationsTypes compensationsTypeUpdate = GetCompensationsTypebyId(compensationsTypeItem.IdCompensationsType);
      //          if (compensationsTypeUpdate != null)
      //          {
      //              compensationsTypeUpdate.NameRu = compensationsTypeItem.NameRu;
      //              compensationsTypeUpdate.NameEn = compensationsTypeItem.NameEn;
      //              compensationsTypeUpdate.IsActive = compensationsTypeItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="compensationsTypeItem">договор</param>
      //  public static void CompensationsTypesInsert(CompensationsTypes compensationsTypeItem)
      //  {
      //      Entities.CompensationsTypes.Add(compensationsTypeItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="compensationsTypeItem">договор</param>
      //  public static void CompensationsTypesDelete(CompensationsTypes compensationsTypeItem)
      //  {
      //      if (compensationsTypeItem != null)
      //      {
      //          CompensationsTypes compensationsTypeDel = GetCompensationsTypebyId(compensationsTypeItem.IdCompensationsType);
      //          if (compensationsTypeDel != null)
      //          {
      //              Entities.CompensationsTypes.Remove(compensationsTypeDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Units

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<Units> Units
      //  {
      //      get { return Entities.Units.ToList(); }
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка типов договоров
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedUnitsNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (Units item in Units)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdUnit;
      //  //        listItem.ParentCollection = Units;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idUnit">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static Units GetUnitbyId(int idUnit)
      //  {
      //      Units _result = null;
      //      foreach (Units unit in Units)
      //      {
      //          if (unit.IdUnit == idUnit)
      //          {
      //              _result = unit;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="unitItem">договор</param>
      //  public static void UnitsUpdate(Units unitItem)
      //  {
      //      if (unitItem != null)
      //      {
      //          Units unitUpdate = GetUnitbyId(unitItem.IdUnit);
      //          if (unitUpdate != null)
      //          {
      //              unitUpdate.NameRu = unitItem.NameRu;
      //              unitUpdate.NameEn = unitItem.NameEn;
      //              unitUpdate.IsActive = unitItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="unitItem">договор</param>
      //  public static void UnitsInsert(Units unitItem)
      //  {
      //      Entities.Units.Add(unitItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="unitItem">договор</param>
      //  public static void UnitsDelete(Units unitItem)
      //  {
      //      if (unitItem != null)
      //      {
      //          Units unitDel = GetUnitbyId(unitItem.IdUnit);
      //          if (unitDel != null)
      //          {
      //              Entities.Units.Remove(unitDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region ContractsStatuses

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<ContractsStatuses> ContractsStatuses
      //  {
      //      get { return Entities.ContractsStatuses.ToList(); }
      //  }

      //  ///// <summary>
      //  ///// Получение локализованного списка типов договоров
      //  ///// </summary>
      //  ///// <param name="culture"></param>
      //  ///// <returns></returns>
      //  //public static List<LocalizedListItem> GetLocalizedContractsStatusesNames()
      //  //{
      //  //    List<LocalizedListItem> result = null;
      //  //    foreach (ContractsStatuses item in ContractsStatuses)
      //  //    {
      //  //        if (result == null) result = new List<LocalizedListItem>();
      //  //        var listItem = new LocalizedListItem();
      //  //        listItem.Id = item.IdContractsStatus;
      //  //        listItem.ParentCollection = ContractsStatuses;
      //  //        switch (CurrentLanguage)
      //  //        {
      //  //            case CurrentLanguage.Russian:
      //  //                listItem.LocaLizedString = item.NameRu;
      //  //                break;
      //  //            case CurrentLanguage.English:
      //  //                listItem.LocaLizedString = item.NameEn;
      //  //                break;
      //  //            default:
      //  //                throw new ArgumentOutOfRangeException();
      //  //        }

      //  //        result.Add(listItem);
      //  //    }
      //  //    return result;
      //  //}

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idContractsStatus">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static ContractsStatuses GetContractsStatusbyId(int idContractsStatus)
      //  {
      //      ContractsStatuses _result = null;
      //      foreach (ContractsStatuses contractsStatus in ContractsStatuses)
      //      {
      //          if (contractsStatus.IdContractsStatus == idContractsStatus)
      //          {
      //              _result = contractsStatus;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="contractsStatusItem">договор</param>
      //  public static void ContractsStatusesUpdate(ContractsStatuses contractsStatusItem)
      //  {
      //      if (contractsStatusItem != null)
      //      {
      //          ContractsStatuses contractsStatusUpdate = GetContractsStatusbyId(contractsStatusItem.IdContractsStatus);
      //          if (contractsStatusUpdate != null)
      //          {
      //              contractsStatusUpdate.NameRu = contractsStatusItem.NameRu;
      //              contractsStatusUpdate.NameEn = contractsStatusItem.NameEn;
      //              contractsStatusUpdate.IsActive = contractsStatusItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="contractsStatusItem">договор</param>
      //  public static void ContractsStatusesInsert(ContractsStatuses contractsStatusItem)
      //  {
      //      Entities.ContractsStatuses.Add(contractsStatusItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="contractsStatusItem">договор</param>
      //  public static void ContractsStatusesDelete(ContractsStatuses contractsStatusItem)
      //  {
      //      if (contractsStatusItem != null)
      //      {
      //          ContractsStatuses contractsStatusDel = GetContractsStatusbyId(contractsStatusItem.IdContractsStatus);
      //          if (contractsStatusDel != null)
      //          {
      //              Entities.ContractsStatuses.Remove(contractsStatusDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region InternalCourses

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<InternalCourses> InternalCourses
      //  {
      //      get { return Entities.InternalCourses.ToList(); }
      //  }

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idInternalCourse">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static InternalCourses GetInternalCoursebyId(int idInternalCourse)
      //  {
      //      InternalCourses _result = null;
      //      foreach (InternalCourses internalCourse in InternalCourses)
      //      {
      //          if (internalCourse.IdInternalCourse == idInternalCourse)
      //          {
      //              _result = internalCourse;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="internalCourseItem">договор</param>
      //  public static void InternalCoursesUpdate(InternalCourses internalCourseItem)
      //  {
      //      if (internalCourseItem != null)
      //      {
      //          InternalCourses internalCourseUpdate = GetInternalCoursebyId(internalCourseItem.IdInternalCourse);
      //          if (internalCourseUpdate != null)
      //          {
      //              internalCourseUpdate.Course = internalCourseItem.Course;
      //              internalCourseUpdate.BeginAction = internalCourseItem.BeginAction;
      //              internalCourseUpdate.EndAction = internalCourseItem.EndAction;
      //              internalCourseUpdate.IsActive = internalCourseItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="internalCourseItem">договор</param>
      //  public static void InternalCoursesInsert(InternalCourses internalCourseItem)
      //  {
      //      Entities.InternalCourses.Add(internalCourseItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="internalCourseItem">договор</param>
      //  public static void InternalCoursesDelete(InternalCourses internalCourseItem)
      //  {
      //      if (internalCourseItem != null)
      //      {
      //          InternalCourses internalCourseDel = GetInternalCoursebyId(internalCourseItem.IdInternalCourse);
      //          if (internalCourseDel != null)
      //          {
      //              Entities.InternalCourses.Remove(internalCourseDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region TrucksCapacities

      //  /// <summary>
      //  /// Список типов договоров
      //  /// </summary>
      //  public static List<TrucksCapacities> TrucksCapacities
      //  {
      //      get { return Entities.TrucksCapacities.ToList(); }
      //  }

      //  /// <summary>
      //  /// Получить договор по Id
      //  /// </summary>
      //  /// <param name="idTrucksCapacity">Id договора</param>
      //  /// <returns>площадка</returns>
      //  public static TrucksCapacities GetTrucksCapacitybyId(int idTrucksCapacity)
      //  {
      //      TrucksCapacities _result = null;
      //      foreach (TrucksCapacities trucksCapacity in TrucksCapacities)
      //      {
      //          if (trucksCapacity.IdTrucksCapacity == idTrucksCapacity)
      //          {
      //              _result = trucksCapacity;
      //              break;
      //          }
      //      }
      //      return _result;
      //  }

      //  /// <summary>
      //  /// Обновление договора
      //  /// </summary>
      //  /// <param name="trucksCapacityItem">договор</param>
      //  public static void TrucksCapacitiesUpdate(TrucksCapacities trucksCapacityItem)
      //  {
      //      if (trucksCapacityItem != null)
      //      {
      //          TrucksCapacities trucksCapacityUpdate = GetTrucksCapacitybyId(trucksCapacityItem.IdTrucksCapacity);
      //          if (trucksCapacityUpdate != null)
      //          {
      //              trucksCapacityUpdate.Capacity = trucksCapacityItem.Capacity;
      //              trucksCapacityUpdate.CapacityForCalculation = trucksCapacityItem.CapacityForCalculation;
      //              trucksCapacityUpdate.IdUnit = trucksCapacityItem.IdUnit;
      //              trucksCapacityUpdate.IsActive = trucksCapacityItem.IsActive;
      //              DB.Save();
      //          }
      //      }
      //  }

      //  /// <summary>
      //  /// Добавление договора
      //  /// </summary>
      //  /// <param name="trucksCapacityItem">договор</param>
      //  public static void TrucksCapacitiesInsert(TrucksCapacities trucksCapacityItem)
      //  {
      //      Entities.TrucksCapacities.Add(trucksCapacityItem);
      //      DB.Save();
      //  }

      //  /// <summary>
      //  /// Удаление договора
      //  /// </summary>
      //  /// <param name="trucksCapacityItem">договор</param>
      //  public static void TrucksCapacitiesDelete(TrucksCapacities trucksCapacityItem)
      //  {
      //      if (trucksCapacityItem != null)
      //      {
      //          TrucksCapacities trucksCapacityDel = GetTrucksCapacitybyId(trucksCapacityItem.IdTrucksCapacity);
      //          if (trucksCapacityDel != null)
      //          {
      //              Entities.TrucksCapacities.Remove(trucksCapacityDel);
      //              DB.Save();
      //          }
      //      }
      //  }

      //  #endregion

      //  #region Configurations - moved but not commented

      //      //public static List<string> TrainingsAcceptanceFileNames
      //      //{
      //      //    get
      //      //    {
      //      //        List<string> result = new List<string>();
      //      //        string[] fileList;
      //      //        try
      //      //        {
      //      //            fileList = Directory.GetFiles(Models.Configurations.TrainingsDocsTemplatesPath);
      //      //        }
      //      //        catch (Exception)
      //      //        {
      //      //            return result;
      //      //        }

      //      //        foreach (var str in fileList)
      //      //        {
      //      //            var name = str.Split('\\').Last();
      //      //            if (string.IsNullOrEmpty(name)) continue;
      //      //            if (((name.Trim()).ToUpper()).Contains("ACCEPTANCE"))
      //      //            {
      //      //                result.Add(name);
      //      //            }
      //      //        }
      //      //        return result;
      //      //    }
      //      //}

      //      /// <summary>
      //      /// Список площадок
      //      /// </summary>
      //      public static List<Configurations> Configurations
      //      {
      //          get { return Entities.Configurations.ToList(); }
      //      }

      //      /// <summary>
      //      /// Получить площадку по Id
      //      /// </summary>
      //      /// <param name="idConfiguration">Id площадки</param>
      //      /// <returns>площадка</returns>
      //      public static Configurations GetConfigurationbyId(int idConfiguration)
      //      {
      //          Configurations _result = null;
      //          foreach (Configurations configuration in Configurations)
      //          {
      //              if (configuration.IdConfiguration == idConfiguration)
      //              {
      //                  _result = configuration;
      //                  break;
      //              }
      //          }
      //          return _result;
      //      }

      //      /// <summary>
      //      /// Обновление площадки
      //      /// </summary>
      //      /// <param name="configurationItem">площадка</param>
      //      public static void ConfigurationsUpdate(Configurations configurationItem)
      //      {
      //          if (configurationItem != null)
      //          {
      //              Configurations configurationUpdate = GetConfigurationbyId(configurationItem.IdConfiguration);
      //              if (configurationUpdate != null)
      //              {
      //                  configurationUpdate.Name = configurationItem.Name;
      //                  configurationUpdate.Value = configurationItem.Value;
      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Добавление площадки
      //      /// </summary>
      //      /// <param name="configurationItem">площадка</param>
      //      public static void ConfigurationsInsert(Configurations configurationItem)
      //      {
      //          Entities.Configurations.Add(configurationItem);
      //          DB.Save();
      //      }

      //      /// <summary>
      //      /// Удаление площадки
      //      /// </summary>
      //      /// <param name="configurationItem">площадка</param>
      //      public static void ConfigurationsDelete(Configurations configurationItem)
      //      {
      //          if (configurationItem != null)
      //          {
      //              Configurations configurationDel = GetConfigurationbyId(configurationItem.IdConfiguration);
      //              if (configurationDel != null)
      //              {
      //                  Entities.Configurations.Remove(configurationDel);
      //                  DB.Save();
      //              }
      //          }
      //      }

      //      /// <summary>
      //      /// Возвращает значение параметра по имени из конйигурации
      //      /// </summary>
      //      /// <param name="name"></param>
      //      /// <returns>значение или null</returns>
      //      public static string GetConfigurationsByName(string name)
      //      {
      //          return Enumerable.FirstOrDefault((from item in Configurations
      //                                            where item.Name.Trim().ToUpper() == name.Trim().ToUpper()
      //                                            select item.Value.Trim()));
      //      }

      //      /// <summary>
      //      /// Возвращает значение параметра из конйигурации или null
      //      /// </summary>
      //      /// <param name="paramName"></param>
      //      /// <returns></returns>
      //      public static string GetConfigurationParam(string paramName)
      //      {
      //          return DB.GetConfigurationsByName(paramName);
      //      }

      //      ///// <summary>
      //      ///// Возвращает адрес отправителя учебного цетнра по умолчанию из настроек или null
      //      ///// </summary>
      //      ///// <returns></returns>
      //      //public static string GetDefaultMailFromStringTrainings()
      //      //{
      //      //    return GetConfigurationParam("TCMailFromDefaultAddress");
      //      //}

      //      ///// <summary>
      //      ///// Возвращает IP адрес почтового сервера или null
      //      ///// </summary>
      //      ///// <returns></returns>
      //      //public static string GetMailServerIp()
      //      //{
      //      //    return GetConfigurationParam("MailServerIP");
      //      //}

      //      ///// <summary>
      //      ///// Возвращает номер порта почтового вервера для отправки писем или 0;
      //      ///// </summary>
      //      ///// <returns></returns>
      //      //public static int GetMailServerPort()
      //      //{
      //      //    try
      //      //    {
      //      //        int port;
      //      //        int.TryParse(GetConfigurationParam("MailServerPort"), out port);
      //      //        return port;
      //      //    }
      //      //    catch
      //      //    {
      //      //        return 0;
      //      //    }
      //      //}

      //  #endregion

      //  public static AgreementElements GetAgreementElementById(int idAgreementElement)
      //  {
      //      return DB.Entities.AgreementElements.FirstOrDefault(s => s.IdAgreementElement == idAgreementElement);
      //  }

      //  #region Contracts

      //  /// <summary>
      //  /// Получение держателей копий
      //  /// </summary>
      //  public static List<CopyHolder> CopyHolders
      //  {
      //      get
      //      {
      //          var result = new List<CopyHolder>();
      //          result.Add(new CopyHolder{Id=0,NameEn="Customer", NameRu="У клиента"});

      //          var col = new UsersCollection();

      //          foreach(var item in col.Managers)
      //          {
      //              result.Add(new CopyHolder{Id=item.IdUser, NameRu=item.UserFullNameRu, NameEn=item.UserFullNameEn});
      //          }

      //          return result;
      //      }
      //  }

     
      //  /// <summary>
      //  /// Получение держателя копии по ID
      //  /// </summary>
      //  /// <param name="holderId">ID держателя</param>
      //  /// <returns>Держатель</returns>
      //  public static CopyHolder GetCopyHolderById(int holderId)
      //  {
      //      return CopyHolders.FirstOrDefault(s => s.Id == holderId);
      //  }

      //  #endregion

        //public static object GetAllDirectTurnoversFilteredByUserAccess(string name)
        //{

        //    var result = new List<Turnovers>();
        //    if (name != null)
        //    {
        //        //  result.AddRange(turnovers.Where(turnoverItem => PermissionsManager.ValidateUserAndTurnover(user, turnoverItem)));
        //        UsersCollection col = new UsersCollection();
        //        Database.Model.Users user =col.GetUserByLogin(name);

        //        if (user != null)
        //        {
        //            foreach (var item in Turnovers.Where(p=>p.IdTurnoverClassification==3))
        //            {
        //                //  var turnover = GetTurnoverbyId(item.IdTurnover);
        //                //if(turnover!=null)
        //                //{
        //                //if (PermissionsManager.ValidateUserAndTurnover(user, item))
        //                //{
        //                //    result.Add(item);
        //                //}
        //                // }
        //            }
        //        }
        //    }

        //    return result;

        //}

        //public static void UpdateAddressesStatus()
        //{

        //    Customers.Count();
        //    LegalEntities.Count();
        //    Addresseses.Count();
        //    foreach(var cust in Customers)
        //    {
        //        foreach(var le in cust.LegalEntities)
        //        {
        //            if(le.Addresses.Count>0)
        //            {
        //                Addresseses.First(s => s.IdAddress == le.Addresses.First().IdAddress).IsPrimary = true;
        //              //  le.Addresses.First().IsPrimary = true;
        //                Save();
                       
        //            }
                    
        //        }
        //    }
        //}

        //public static void InitDB()
        //{
        //   // Settlements.Count();
        //   // var obj = Settlements.FirstOrDefault(s => s.NameRu.Contains("Волгоград"));
        //   // var regionProfine = obj.Regions.profineRegions;
        //   // var AddressList = Addresseses.ToList();

        //   // Regions.Count();
        //   // profineRegions.Count();
        //   // Districts.Count();
        //   // Countries.Count();

        //   // for (var i = 0; i < AddressList.Count(); i++)
        //   //{
        //   //    var addr = AddressList[i];
        //   //     if(addr.IdLegalEntity==null)
        //   //     {
        //   //         Entities.Addresses.Remove(addr);
                    
        //   //     }
        //   //}
        //   // Save();

        //    DateTime startTime, endTime;
        //    startTime = DateTime.Now;

        //    foreach(var cust in Customers)
        //        foreach (var legalEntity in cust.LegalEntities)
        //        {
        //            foreach(var address in legalEntity.Addresses)
        //            {
        //                var s = address.Settlements;
        //                var distr = address.District;
        //                var profineRegion = address.profineRegion;
        //                var country = address.Country;
        //                var i = s.Regions.IdProfineRegion;
        //                var ii = s.Country.profineRegions;
        //                var iii = s.Regions.profineRegions.Regions;
        //                var ui = s.IdRegion;
        //                var tt = s.Regions.profineRegions.Regions;
        //                var c = s.IdCountry;
        //                var e = s.Regions.Settlements;
        //                var id = s.IdSettlement;
        //            }

        //          //  var turn = legalEntity.Sales;
        //        }


        //    foreach(var sett in Settlements)
        //    {
        //        var city = sett.NameRu;
        //        var country = sett.CountryRu;
        //        var distr = sett.DistrictName;
        //        var profineReg = sett.Regions.profineRegions.NameRu;
        //        var area = sett.AreaName;
        //    }

        //    endTime = DateTime.Now;

        //    var time = endTime - startTime;
        //}
    }

    /// <summary>
    /// Локализованный список
    /// </summary>
    public class LocalizedListItem
    {
        /// <summary>
        /// Идентификатор в родительской коллекции
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Локализованная строка
        /// </summary>
        public string LocaLizedString { get; set; }

        /// <summary>
        /// Родительская коллекция
        /// </summary>
        public object ParentCollection { get; set; }
    }

    /// <summary>
    /// Класс для представления параметров фильтра
    /// </summary>
    public class FilterItem
    {
        /// <summary>
        /// Начало периода
        /// </summary>
        private DateTime _periodStart;
        
        
        /// <summary>
        /// Окончание периода
        /// </summary>
        private DateTime _periodEnd;
        
        /// <summary>
        /// Идентификатор региона профайн
        /// </summary>
        private int _idProfineRegion;
        
        /// <summary>
        /// Идентификатор менеджера
        /// </summary>
        private string _idManager;

        /// <summary>
        /// Начало периода
        /// </summary>
        public DateTime PeriodStart
        {
            get { return _periodStart; }
            set { _periodStart = value; }
        }

        /// <summary>
        /// Окончание периода
        /// </summary>
        public DateTime PeriodEnd
        {
            get { return _periodEnd; }
            set { _periodEnd = value; }
        }

        /// <summary>
        /// Идентификатор региона профайн
        /// </summary>
        public int IdProfineRegion
        {
            get { return _idProfineRegion; }
            set { _idProfineRegion = value; }
        }

        /// <summary>
        /// Идентификатор менеджера
        /// </summary>
        public string IdManager
        {
            get { return _idManager; }
            set { _idManager = value; }
        }
    }

    public class CopyHolder
    {
        public string NameRu { get; set; }
        public string NameEn { get; set; }

        public int Id { get; set; }

        //public string Name
        //{
        //    get
        //    {
        //        switch(DB.CurrentLanguage)
        //        {
        //            case CurrentLanguage.Russian:
        //                return NameRu;
        //                break;
        //            case CurrentLanguage.English:
        //                return NameEn;
        //                break;
        //            default:
        //                throw new ArgumentOutOfRangeException();
        //        }
        //    }
        //}
    }

    public class ProductForSearch
    {
        public int IdProduct { get; set; }
        public string SapNumber { get; set; }
    }

    public class TrueTurnover
    {
        public float Amount { get; set; }
        public int IdLegalEntity { get; set; }
        public int IdDealerLegalEntity { get; set; }
        public DateTime Period { get; set; }
        public int IdTurnoverClassification { get; set; }
        public int IdProduct { get; set; }
        public int IdTurnover { get; set; }
    }
}